Autor |
Beitrag |
Flash106
      
Beiträge: 234
D7 Ent
|
Verfasst: Mo 24.05.04 18:51
Hi,
ich hab das Forum schon abgegrast aber nichts was mein Problem löst gefunden. Und zwar möchte ich mehrer SQL befehle aufeinmal ausführen. Ich benutze die SQL query von dbExpress, hier das code beispiel:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.Button2Click(Sender: TObject); begin with SQLQuery1.SQL do begin Clear; Add ('CREATE DATABASE test'); Add ('CREATE DATABASE test02'); end; SQLQuery1.ExecSQL; end; |
Das Problem is das ich nur einen BEfehl ausführen kann. Füge ich einen zweiten hinzu kommt der Fehler:
...'You have an error in your SQL syntax near 'CREATE DATABASE test02' at line 2'... .
 .. Warum erhalte ich diesen Fehler denn? Im Forum wurde doch vorgeschlagen das so zumachen..
sowas dummes ...
Danke schonmal... Bianca
EDIT: hatte vergessen zu erwähnen das ich MySQL benutze....
|
|
FaTaLGuiLLoTiNe
      
Beiträge: 200
Erhaltene Danke: 5
Windows 7, Windows 8.1
Delphi XE
|
Verfasst: Mo 24.05.04 19:05
[klugscheiss]
Also erstmal kann man das definitiv nicht gleichzeitig machen, sondern nur hintereinander. Echte Gleichzeitigkeit gibt es auf dem PC nämlich nicht.
[/klugscheiss]
Ich bin mir im Moment nicht sicher ob man überhaupt mehrere Befehle auf einmal absetzen kann, aber wenn, denn nur mit einem Semikolon dazwischen. Also probier das mal:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.Button2Click(Sender: TObject); begin with SQLQuery1.SQL do begin Clear; Add ('CREATE DATABASE test;'); Add ('CREATE DATABASE test02;'); end; SQLQuery1.ExecSQL; end; |
Wenn das nicht geht musst du halt zwischendurch das Query schliessen, neu füllen und ExecSQL nochmal aufrufen.
_________________ << FaTaLGuiLLoTiNe >>
Rhinoceroses don't play games!
|
|
MSCH
      
Beiträge: 1448
Erhaltene Danke: 3
W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
|
Verfasst: Mo 24.05.04 19:24
es geht; aber nur durch die Hintertür;
eine Stored Procedure kann sowas; also createStoredProcedure(ErstelleTabelle erstellen, ZweiteTabelle erstellen), aufrufen und anschließend wieder löschen.
grez
msch
_________________ ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
|
|
FaTaLGuiLLoTiNe
      
Beiträge: 200
Erhaltene Danke: 5
Windows 7, Windows 8.1
Delphi XE
|
Verfasst: Mo 24.05.04 19:26
Allerdings können AFAIK nicht alle Datenbanken (z.B. ältere MySQL Versionen) mit StoredProcedures umgehen.
_________________ << FaTaLGuiLLoTiNe >>
Rhinoceroses don't play games!
|
|
Flash106 
      
Beiträge: 234
D7 Ent
|
Verfasst: Mo 24.05.04 19:53
schon ok =) ... danke.. ich machs doch einzeln... is auch nich sooo das problem =) .. DANKE
|
|
Flash106 
      
Beiträge: 234
D7 Ent
|
Verfasst: Mo 24.05.04 20:43
aaaaahhhhhhhh VERDAAAAAAAAMMT!!! *grummel* .. ok ich mach ja jetz die SQL querys einzeln.. ABER... ich kann ja nichmal ne Tabelle mit mehreren Feldern erstellen.. dann bekommen ich die gleich Fehlermeldung wie schon genannt... KANN DOCH NICH WAHR SEIN!!!!  ... hilfe?!??!
EDIT: hier der code schnippzel:
Quelltext 1:
| mySQLQuery('CREATE TABLE test (name VARCHAR(25), alter INT)'); |
mySQLQuery ist eine procedure:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| procedure mySQLQuery(query : string); begin with Form1.SQLQuery1.SQL do begin clear; Add (query); end; Form1.SQLQuery1.ExecSQL; end; |
|
|
UGrohne
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: Di 25.05.04 17:30
Wie greifst Du denn auf die Datenbank zu? Per BDE? Dann hast Du damit ein Problem, da gehts nämlich auf diesem Weg nicht.
Ich würde Dir vorschlagen die zeoslibs zu verwenden, da gibts ne Kompo ZSQLProcessor, die ganze Scripte ausführen kann.
|
|
DannyVapid
      
Beiträge: 38
Delphi 5 Enterprise
|
Verfasst: Do 27.05.04 08:19
@UGrohne: naja, normalerweise funktioniert das schon einwandfrei per BDE und ODBC sowohl bei MySQL- als auch MSSQL-Datenbanken.
@Flash106: ich vermute mal die Datenbank hat mit Deinem Statement 'CREATE TABLE test (name VARCHAR(25), alter INT)' ein Problem, weil ALTER ein reserviertes Wort in SQL ist.
Nenn das Feld doch testweise mal anders.
Freundliche Grüsse
Danny
|
|
Flash106 
      
Beiträge: 234
D7 Ent
|
Verfasst: Mo 31.05.04 20:53
danke danny.. so hats super funktioniert =)
Bianca
|
|
UGrohne
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: Di 01.06.04 18:46
Ach na sowas, das kommt davon, wenn man sich nicht jedes Wort genau anschaut und den Sinn dahinter sucht 
|
|