AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Mehrere Inserts in einem Query
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Inserts in einem Query

Ein Thema von Der Jan · begonnen am 29. Jan 2006 · letzter Beitrag vom 29. Jan 2006
Antwort Antwort
Benutzerbild von Der Jan
Der Jan

Registriert seit: 22. Dez 2005
289 Beiträge
 
Delphi XE7 Ultimate
 
#1

Mehrere Inserts in einem Query

  Alt 29. Jan 2006, 11:24
Datenbank: Firebird • Version: 1.5 • Zugriff über: FIBPlus
Hi,

kann es sein, das man pro Query (FIBQuery) nur ein Insert ausführen kann? Ich will ganz normal mehrere Datensätzen in eine Tabelle einfügen und bau im Programm ein Query so als Beispiel:

SQL-Code:
INSERT INTO ZUBEHOERTEILE (ZUBEHOERID,AUFTRAGID) VALUES (4,1234);
INSERT INTO ZUBEHOERTEILE (ZUBEHOERID,AUFTRAGID) VALUES (5,1234);
INSERT INTO ZUBEHOERTEILE (ZUBEHOERID,AUFTRAGID) VALUES (23,1234);
INSERT INTO ZUBEHOERTEILE (ZUBEHOERID,AUFTRAGID) VALUES (76,1234);
INSERT INTO ZUBEHOERTEILE (NAME_MANUELL,AUFTRAGID) VALUES ('Manschette grau',1234);
INSERT INTO ZUBEHOERTEILE (NAME_MANUELL,AUFTRAGID) VALUES ('wasweißichnochfürzeuch',1234);
Wenn ich das Teil mittels MyQuery.ExecQuery ausführe, gibts Gemecker beim zweiten Insert: 'Dynamic SQL Error, Invalid Token INSERT at line 2, column 1....'

Natürlich könnte ich jedes Insert separat ins FIBQuery setzen und ausführen Das funzt ja auch), aber das ist ja nicht wirklich im Sinne des Erfinders...

Wo liegt das Problem? Das Query selbst ist ja wohl richtig. Gibts bei FIBQuery vielleicht noch irgendwelchen Properties/Flags für sowas? in grad bissel planlos....
Gruß, Jan
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Mehrere Inserts in einem Query

  Alt 29. Jan 2006, 11:39
vielleicht #13#10, anstatt ';'?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Mehrere Inserts in einem Query

  Alt 29. Jan 2006, 11:48
Das Zeichen ';' wird als Ende des gesamten Staements angesehen. Dehalb Mit 'SET TERM anderes Terminal Zeichen setzten:

SQL-Code:
SET TERM !! ;
INSERT ... ;
INSERT ... !!
SET TERM ; !!
Markus Kinzler
  Mit Zitat antworten Zitat
alex517

Registriert seit: 23. Nov 2004
Ort: Bernau b. Berlin
273 Beiträge
 
Delphi XE5 Enterprise
 
#4

Re: Mehrere Inserts in einem Query

  Alt 29. Jan 2006, 12:28
Hallo Jan,

Wenn du mehrere Statements mit einem Mal abarbeiten willst,
so empfiehlt Devrace dafür FibPlus Script.
alex
Alexander
  Mit Zitat antworten Zitat
Avax2k

Registriert seit: 6. Okt 2005
186 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Mehrere Inserts in einem Query

  Alt 29. Jan 2006, 13:07
sollte so klappen:

Delphi-Quellcode:
try
with Query do
Open;
Insert.
INSERT INTO ZUBEHOERTEILE (ZUBEHOERID,AUFTRAGID) VALUES (4,1234);
INSERT INTO ZUBEHOERTEILE (ZUBEHOERID,AUFTRAGID) VALUES (5,1234);
INSERT INTO ZUBEHOERTEILE (ZUBEHOERID,AUFTRAGID) VALUES (23,1234);
INSERT INTO ZUBEHOERTEILE (ZUBEHOERID,AUFTRAGID) VALUES (76,1234);
INSERT INTO ZUBEHOERTEILE (NAME_MANUELL,AUFTRAGID) VALUES ('Manschette grau',1234);
INSERT INTO ZUBEHOERTEILE (NAME_MANUELL,AUFTRAGID) VALUES ('wasweißichnochfürzeuch',1234);
post
finally
end;
musst es nur noch entsprechend anpassen mit den Felder aus denen du die Information schreibst..

wohl besser dann so

Delphi-Quellcode:
...
insert;
Query.FieldByName('Zubehoerid').AsString := Edit1.Text;
Query.FieldByName('Auftragid').AsString := Edit2.Text;
...
post;
  Mit Zitat antworten Zitat
Benutzerbild von Der Jan
Der Jan

Registriert seit: 22. Dez 2005
289 Beiträge
 
Delphi XE7 Ultimate
 
#6

Re: Mehrere Inserts in einem Query

  Alt 29. Jan 2006, 13:35
Zitat von mkinzler:
Das Zeichen ';' wird als Ende des gesamten Statements angesehen. Dehalb Mit 'SET TERM anderes Terminal Zeichen setzten:

SQL-Code:
SET TERM !! ;
INSERT ... ;
INSERT ... !!
SET TERM ; !!
Äh ja. Als ich das gelesen hab, hab ich schon gedacht "alles klar, das isses". Weil ist ja eigentlich logisch. Nur leider ist SET TERM hier nicht erlaubt, geht wahrscheinlich nur im PSQL.

Zitat von Avax2k:
sollte so klappen:

Delphi-Quellcode:
try
with Query do
Open;
Insert.
//...
musst es nur noch entsprechend anpassen mit den Felder aus denen du die Information schreibst..

wohl besser dann so

Delphi-Quellcode:
...
insert;
Query.FieldByName('Zubehoerid').AsString := Edit1.Text;
Query.FieldByName('Auftragid').AsString := Edit2.Text;
...
post;
Ne, das geht wohl beim TQuery, ich hab nehm doch aber FIBPlus. Und TFIBQuery ist ne reine( kleine, feine ? ) Abfrage und kein Nachfolger von TDataSet...


Zitat von alex517:
Hallo Jan,

Wenn du mehrere Statements mit einem Mal abarbeiten willst,
so empfiehlt Devrace dafür FibPlus Script.
alex
Hm, das werd ich wir dann wohl mal genauer anschauen. Sieht auf den ersten Blick vielversprechend aus. Und $30 ist auch ganz erträglich...

Die Lösung, bzw. die Antwort, das es nicht geht, steht ja auch gleich darin:
Zitat:
You can not execute a few different SQL statements at once with TpFIBQuery or TpFIBDataSet. Both components can operate with single SQL statements only.
Ok, dann erstmal danke für eure Hilfe. Ich werd dann wohl vorerst bei der alten Lösung bleiben und ein Inssert nach dem anderen abarbeiten....
Gruß, Jan
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz