ODBC MS SQL Datenbank erstellen

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.

ODBC MS SQL Datenbank erstellen

Beitragvon VarStr » 3. Apr 2015, 00:53 ODBC MS SQL Datenbank erstellen

Hallo,

Mein Problem ist folgendes: Ich muss auf nem MS SQL Server ne neue Datenbank erstellen bzw löschen.
Ich verwende ne ODBC-Datenquelle. Tja und alle bisherigen Versuche von mir sind gescheitert.
Eigentlich dachte ich, dass ich nem Query einfach den Befehl 'CREATE DATABASE NamederDatenbank' zuweise und das über ExecSQL erledige.
Das macht er nicht. Ich führe den Befehl aber eigentlich über die Master-Datenbank aus und es wird eigentlich nur der CREATE DATABASE-Befehl ausgeführt, wesshalb mich die Fehlermeldung irritiert.

Fehlermeldung.png

Ja und nachdem ich ein wenig gesucht habe fand ich die procedure TODBCConnection.createDB, die aber auch nicht so funktioniert.
Das scheint für diese Art von Datenbank wohl nicht zu funktionieren.

Kann mir jemand helfen?

Gruß
VarStr
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
VarStr
 
Beiträge: 10
Registriert: 3. Apr 2015, 00:10

Beitragvon hde » 3. Apr 2015, 02:07 Re: ODBC MS SQL Datenbank erstellen

Dann würde ich erst einmal die Transactions checken.
Und nebenbei, bei uns scheuen wir inzwischen die "OldDataBaseConnections" wie der Teufel das Weihwaser
Versuch mal Zeos ohne ODBC
hde
 
Beiträge: 556
Registriert: 11. Aug 2010, 01:56

Beitragvon VarStr » 3. Apr 2015, 03:18 Re: ODBC MS SQL Datenbank erstellen

Danke für die schnelle Antwort

Kannst du mir das mit den Transactions genauer erklären? Was würdest du dir da anschauen? Ich bin da ehrlich gesagt ziemlich planlos.
Ich kann auf jeden Fall sagen, dass andere SQL-Befehle problemlos ausgeführt werden. Z.B. können diverse Tabellen erstellt und gelöscht werden.
Ich würde auch eher ungern auf Zeos umsteigen. Die Funktionalität, an der ich da arbeite ist Teil von nem größeren Projekt und das baut eigentlich komplett auf ne ODBC-Datenquelle auf.
Es müssen ja eigentlich nur noch diese 2 Funktionalitäten rein und ich wäre dann auch ziemlich froh, wenn ich das schnell und einfach abschließen kann.
VarStr
 
Beiträge: 10
Registriert: 3. Apr 2015, 00:10

Beitragvon Antrepolit » 3. Apr 2015, 10:56 Re: ODBC MS SQL Datenbank erstellen

VarStr hat geschrieben:Danke für die schnelle Antwort

Kannst du mir das mit den Transactions genauer erklären? Was würdest du dir da anschauen? Ich bin da ehrlich gesagt ziemlich planlos.
Ich kann auf jeden Fall sagen, dass andere SQL-Befehle problemlos ausgeführt werden. Z.B. können diverse Tabellen erstellt und gelöscht werden.
Ich würde auch eher ungern auf Zeos umsteigen. Die Funktionalität, an der ich da arbeite ist Teil von nem größeren Projekt und das baut eigentlich komplett auf ne ODBC-Datenquelle auf.
Es müssen ja eigentlich nur noch diese 2 Funktionalitäten rein und ich wäre dann auch ziemlich froh, wenn ich das schnell und einfach abschließen kann.


Man muss bei Datenbanken zwischen DML (data Manipulation Language) und DDL (Data Definition Language) unterscheiden. Zu ersterer gehören SELECT, INSERT, UPDATE und DELETE-Statements. Zu DDL gehören CREATE TABLE, TRUNCATE TABLE etc. Während bei der DML Transaktionen von Bedeutung sind, sind Befehle der DDL nicht durch Transaktionen rückgängig zu machen. Was Transaktionen sind, sagt dir Google. Nun gibt es bei ODBC DInge, die man berücksichtigen muss. Ich bin aber sicher, dass ein wenig Suchen mit Google auch dazu Antworten liefert. Und auch wenn es "nur um zwei Funktionalitäten" geht, musst du dennoch deinen kram kennen und wissen, womit du es zu tun hast. Schließlich werden da noch mehr Fehler auftauchen und dann willst du ja nicht nochmal fragen müssen. :wink: Und ich denke, dass hde hier recht hat - ohne ODBC wäre das Problem vermumlich nicht aufgetaucht.
Grüße, Antrepolit

care only if your os is really burning
Antrepolit
 
Beiträge: 340
Registriert: 12. Sep 2006, 07:57

Beitragvon hde » 3. Apr 2015, 12:42 Re: ODBC MS SQL Datenbank erstellen

Antrepolit hat geschrieben:Während bei der DML Transaktionen von Bedeutung sind, sind Befehle der DDL nicht durch Transaktionen rückgängig zu machen.

Absolut korrekt, aber wenn DML Transaktionen laufen / offen sind, kann es bei DDL Probleme geben.
z.B MODIFY TABLE während auf der gleichen Tabelle eine Transaktion nicht abgeschlossen ist.

VarStr hat geschrieben:baut eigentlich komplett auf ne ODBC-Datenquelle auf.

Du musst ja nicht die Datenbank wechslen sondern nur die Verbindung.

Versuch mal unter WIN-64 eine 32-bit-ODBC Verbindung stabil aufzubauen, je nach DB erzielst du beim Glückspiel mehr Treffer, oder du fummelst an jedem Client an den Windows-Internas
hde
 
Beiträge: 556
Registriert: 11. Aug 2010, 01:56

Beitragvon VarStr » 3. Apr 2015, 15:03 Re: ODBC MS SQL Datenbank erstellen

Ja ich werde meine bemühungen in der Hisicht wohl aufgeben.

Ich habe folgendes gefunden, was wohl funktionieren würde.
http://wiki.freepascal.org/mssqlconn

Nur bin ich ein echter "Experte" und deswegen scheitere ich schon beim Einbinden der Bibliothek.
Ich habe dazu was gelesen, aber da meinte man nur, dass die in den Projektordner muss. Das funktioniert bei mir auf jeden Fall nicht.
Wo soll ich die denn hinmachen oder habe ich einfach nur was vergessen?
VarStr
 
Beiträge: 10
Registriert: 3. Apr 2015, 00:10

Beitragvon Antrepolit » 3. Apr 2015, 16:46 Re: ODBC MS SQL Datenbank erstellen

Wo liegt denn das Problem? MSSQLConnection ist doch eine visuelle Komponente, die musst du doch nur anstelle der ODBCConnection in deinem Form platzieren und die Konfiguration setzen. Poste doch mal die genauen Fehlermeldungen statt vage Andeutungen zu machen.
Grüße, Antrepolit

care only if your os is really burning
Antrepolit
 
Beiträge: 340
Registriert: 12. Sep 2006, 07:57

Beitragvon hde » 3. Apr 2015, 18:42 Re: ODBC MS SQL Datenbank erstellen

Die Meldung in seinem ersten Post meckert offenbar eine laufende Transaktion an
Gruß hde
hde
 
Beiträge: 556
Registriert: 11. Aug 2010, 01:56

Beitragvon VarStr » 3. Apr 2015, 19:26 Re: ODBC MS SQL Datenbank erstellen

hde hat geschrieben:Die Meldung in seinem ersten Post meckert offenbar eine laufende Transaktion an

Das kann aber nicht sein. Ich habe extra ein "Testprojekt" angelegt. Da wird nur dieser eine Befehl übergeben und das wars dann auch schon.
Mir wurde da empfohlen, dass ich das Projekt einfach mit Adminrechten ausführen soll, was aber nichts gebracht hat.

Antrepolit hat geschrieben:Wo liegt denn das Problem? MSSQLConnection ist doch eine visuelle Komponente, die musst du doch nur anstelle der ODBCConnection in deinem Form platzieren und die Konfiguration setzen. Poste doch mal die genauen Fehlermeldungen statt vage Andeutungen zu machen.

also das Problem liegt darin, dass er die dblib.dll nicht finden kann. Wie gesagt habe ich bisher nur gelesen, dass ich die einfach in den Projektordner setzen sol und dann findet er die schon allein.
Das funktioniert aber nich. Hier die genaue Fehlermeldung:
Fehlermeldung.png


Ich weiß noch geradeso, wie man ein Package hinzufügt, aber die .dll ist da wohl was ganz anderes.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
VarStr
 
Beiträge: 10
Registriert: 3. Apr 2015, 00:10

Beitragvon hde » 3. Apr 2015, 21:06 Re: ODBC MS SQL Datenbank erstellen

VarStr hat geschrieben:Ich kann auf jeden Fall sagen, dass andere SQL-Befehle problemlos ausgeführt werden. Z.B. können diverse Tabellen erstellt und gelöscht werden.


VarStr hat geschrieben:also das Problem liegt darin, dass er die dblib.dll nicht finden kann


Diese beiden Aussagen widersprechen sich total. Entweder .. oder ..

Hast du die Komponenten gewechselt?
Ein ODBC-Treiber wird instaliert .. die DLL braucht es bei MSSQLConnection ..
hde
 
Beiträge: 556
Registriert: 11. Aug 2010, 01:56

Beitragvon VarStr » 3. Apr 2015, 21:29 Re: ODBC MS SQL Datenbank erstellen

hde hat geschrieben:Diese beiden Aussagen widersprechen sich total. Entweder .. oder ..

Hast du die Komponenten gewechselt?
Ein ODBC-Treiber wird instaliert .. die DLL braucht es bei MSSQLConnection ..

Ja ich habe gewehselt. Also mit der ODBC liefen alle Befehle, außer eben das CREATE / DROP DATABASE. Dazu gehört die erste fehlermeldung.
Jetzt habe ich ein Testprojekt erstellt, wo ich nur ne Datenbank erstellen will. Da versuche ich gerade die MSSQL Komponente zum laufen zu bringen. Dazu gehört dann meine letzte Fehlermeldung.
Er findet die DLL aber nicht, weil ich se nur in den Projektordner gelegt habe. Wie ich herausfinden konnte muss man die anscheinend noch in das Projekt einbinden. Dazu habe ich auch dieses ganz gute Tutorial gefunden:
http://de.wikibooks.org/wiki/Programmierkurs:_Delphi:_DLL-Programmierung

Nur werde ich daraus auch nicht so richtig schlau. Ich weiß ja nicht, welche Funktionen der DLL ich benötige bzw weiß ich nicht einmal, welche Funktionen die DLL überhaupt enthält.
Dann würde dass ja auch dafür sprechen, dass ich die Funktionen/ Proceduren ja selber aufufen muss. Das macht doch alles die Komponente, oder?
Ich bin da gerade ziemlich am verzweifeln :(
VarStr
 
Beiträge: 10
Registriert: 3. Apr 2015, 00:10

Beitragvon hde » 3. Apr 2015, 22:02 Re: ODBC MS SQL Datenbank erstellen

VarStr hat geschrieben:Wie ich herausfinden konnte muss man die anscheinend noch in das Projekt einbinden. Dazu habe ich auch dieses ganz gute Tutorial gefunden:
http://de.wikibooks.org/wiki/Programmie ... rammierung


Auch das passt nicht zusammen. Dieses Tutorial hilft nur wenn du ohne Komponenten alles selbst coden willst.

Aber sorry, die MSSQLConnection verwenden wir nicht, da hab ich keine Erfahrung, aber sie wird funktionieren. Gib den Pfad mal bei den Projekteinstellung mit an. Da wir immer noch viel unter Delphi entwickeln verwenden wir nur die Zeos Komponenten und können so Module unter Delphi und Lazarus entwickeln bzw. supporten. Und da gibt's das Prob nicht.

Deine erste Fehlermeldung stammt vom ODBC-Treiber und der meckert eindeutig dein Transactionhandling an. Hast du die SQLTransaction eingebunden und ggf. wie?
hde
 
Beiträge: 556
Registriert: 11. Aug 2010, 01:56

Beitragvon VarStr » 3. Apr 2015, 23:09 Re: ODBC MS SQL Datenbank erstellen

hde hat geschrieben:Auch das passt nicht zusammen. Dieses Tutorial hilft nur wenn du ohne Komponenten alles selbst coden willst.

OK das erklärt schon einmal einiges :oops:

hde hat geschrieben:Gib den Pfad mal bei den Projekteinstellung mit an.

Also das funktioniert leider nicht. Er findet es dennoch nicht.

hde hat geschrieben:Deine erste Fehlermeldung stammt vom ODBC-Treiber und der meckert eindeutig dein Transactionhandling an. Hast du die SQLTransaction eingebunden und ggf. wie?

Also das verstehe ich jetzt nicht so ganz. Also die SQLTransaction habe ich wie immer eigentlich über den Objektinspektor mit der ODBC Connection verbunden (also über die Eigenschaft Database).
Ja und dann natürlich auch das Query mit der SQLTransaction verbunden, wobei ich es auch schon über TODBCConnection.ExecuteDirect versucht habe.
Meinst du das oder habe ich da was vergessen?
Auf der anderen Seite lassen sich andere SQL-Befehle problemlos ausführen. Sogar CREATE / DROP TABLE funktioniert, was ja ebenfalls in den Bereich der DLL fällt.
VarStr
 
Beiträge: 10
Registriert: 3. Apr 2015, 00:10

Beitragvon hde » 3. Apr 2015, 23:37 Re: ODBC MS SQL Datenbank erstellen

CREATE DATABASE ist schon etwas besonderes. Wie und wo bist du denn eingelogged?
Falls die Connection bereits in eine Datenbank führt kann man da natürlich keine weitere DB createn.
Und eine SQLTransactionkomponente nur einzubinden reicht natürlich auch nicht aus.
hde
 
Beiträge: 556
Registriert: 11. Aug 2010, 01:56

Beitragvon VarStr » 4. Apr 2015, 00:15 Re: ODBC MS SQL Datenbank erstellen

Also ich nutze zum ausführen die master - Datenbank.
Also muss ich bei der Connection den Databasename ändern? Das habe ich schon probiert. Der bezieht sich ja aber auf die ODBC und wenn ich das ändere, dann führt er nichts aus.
Meinst du, dass ich über den befehl CreateDB eine Datenbank erstellen soll? Das habe ich schon versucht, aber das kommt mir auch komisch vor.
Immerhin bezieht sich die Eigenschaft Databasename ja auf die ODBC-Datenquelle, oder?
Und was sei bei der Transactionkomponente zu beachten? Also mehr, als das erst geschiderte habe ich mit der nicht gemacht.
VarStr
 
Beiträge: 10
Registriert: 3. Apr 2015, 00:10

» Weitere Beiträge siehe nächste Seite »
Nächste

Zurück zu Datenbanken



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste

porpoises-institution
accuracy-worried