![]() |
Datenbank: FIREBIRD • Version: 1.5.1 • Zugriff über: Zeos sql
Zeos query mehrere sql statements per sql.add
hi,
ich hab da n kleines prob mit der syntax bei mehreren sql statements: hier der code
Delphi-Quellcode:
tll ist ne stringlist wo ich die udate commands reinschreib, probeweise erstemal auf 2 gemacht
dm.ZQ.SQL.Clear;
dm.ZQ.SQL.Delimiter:=';'; for i := 1 to 2 do begin idv:=tlid.strings[i-1]; fv:=tlf.strings[i-1]; tll.append('UPDATE ASSET_DATA SET '+s+'='''+fv+''' WHERE ASSET_ID='+inttostr(caid)+' and IDVALUE='''+idv+''';'); for i:=1 to 2 do begin dm.ZQ.SQL.add(tll.strings[i-1]); end; dm.ZQ.ExecSQL; bei execsql bekomm ich nach her die fehlermeldung: toke unknown in line 2 char 1 update. die beiden sql strings sehn so aus: UPDATE ASSET_DATA SET STRNAME='blablabla' WHERE ASSET_ID=1 and IDVALUE='1'; UPDATE ASSET_DATA SET STRNAME='blablablabla' WHERE ASSET_ID=1 and IDVALUE='2';; hat jemand ne idee? achso die felder IDVALUE und STRNAME sind varchar, ASSET_ID ist integer und fk |
Re: Zeos query mehrere sql statements per sql.add
imho kann immer nur ein Update zur Zeit ausgeführt werden. Mehrere nacheinander in einem SQL-Statement funktioniert nicht. Da du aber eine StringList hast, kannst du die Statements auch nacheinander ausführen lassen.
|
Re: Zeos query mehrere sql statements per sql.add
aha, das ist mir klar ich wollte halt irgendwie performance rausholen und dachte wenn ich die updates sammle und einmal abschicke gehts irgendwie schneller.
|
Re: Zeos query mehrere sql statements per sql.add
Ich habe die Zeos hier gerade nicht parat. Aber schau doch die Komponentenliste nochmal durch, ob da nicht eine bei ist, die das kann.
Ob das mehr Performance bringt, wage ich zu bezweifeln. Die Datenbank muss auch nacheinander abarbeiten. Vielleicht solltest du das in einem Thread auslagern, damit du im Programm weiter arbeiten kannst. |
Re: Zeos query mehrere sql statements per sql.add
Das Ausführen von Scripts kann mit der Komponente TZSQLProcessor gemacht werden.
|
Re: Zeos query mehrere sql statements per sql.add
ok das ganze per processor
Delphi-Quellcode:
funktioniert so auch nicht, hab keine ahnung weshalb
dm.ZQP.script.Clear;
dm.ZQP.Delimiter:=';'; for i := 1 to 2 do begin idv:=tlid.strings[i-1]; fv:=tlf.strings[i-1]; tll.append('UPDATE ASSET_DATA SET '+s+'='''+fv+''' WHERE ASSET_ID='+inttostr(caid)+' and IDVALUE='''+idv+''';'); for i:=1 to 2 do begin dm.ZQP.script.add(tll.strings[i-1]); end; dm.zqp.execute; da bekomm ich den fehler token unknown: in line 1 char 84 Zitat:
wie muss ich das richtig machen mit dem zsqlprocessor? |
Re: Zeos query mehrere sql statements per sql.add
Schon das probiert?
Delphi-Quellcode:
oder auch garnicht deine StringList benutzten, sondern direkt in .script schreiben (ist ja auch TStrings)
dm.ZQP.script := tll;
|
Re: Zeos query mehrere sql statements per sql.add
das bringt genau das gleiche ergebnis
|
Re: Zeos query mehrere sql statements per sql.add
Hmm, da bin ich echt ratlos... :gruebel:
Was passiert, wenn du deine beiden Updates im OI in Script schreibst und es dann ausführen lässt?? |
Re: Zeos query mehrere sql statements per sql.add
es kommt wieder dieser fehler
wie ist das mit den eigenschaften delimter und delimitertype? kanns daran liegen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz