Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   ZEOS und firebird oder syntaxfehler ? (https://www.delphipraxis.net/125450-zeos-und-firebird-oder-syntaxfehler.html)

khh 6. Dez 2008 07:53

Datenbank: firebird • Version: 2.1 • Zugriff über: ZEOS

ZEOS und firebird oder syntaxfehler ?
 
hallo zusammen,


ich habe versucht mein sql-statement um "for update" zu ergänzen.

Leider bekomme ich so eine fehler :-(

Cannot retrieve Resultset Data.

Sehe ich es richtig, dass for update nur mit execSQL funtioniert und nicht mit open?

mkinzler 6. Dez 2008 09:12

Re: ZEOS und firebird oder syntaxfehler ?
 
Ein Update schon, aber ein Select for update nicht. Es ist ja ein select, das auf Satzebene sperrt
Wie sieht dein Statement denn aus?

khh 6. Dez 2008 09:19

Re: ZEOS und firebird oder syntaxfehler ?
 
Zitat:

Zitat von mkinzler
Ein Update schon, aber ein Select for update nicht. Es ist ja ein select, das auf Satzebene sperrt
Wie sieht dein Statement denn aus?

FkundenQuery1.SQL.add('select * from kunden where kundennummer = :fkdnr for update ');
FkundenQuery1.ParamByName('fkdnr').AsString := FKdnr;
FkundenQuery1.open;

hier bekomme ich beim open die Fehlermeldung.
Setze ich das Statement mit execSQL ab funktionierts.
Leider kann ich dann die Syntax:

FkundenQuery1.edit;
FkundenQuery1['name']:= Fname;
FkundenQuery1.post;

nicht verwenden :-(

khh 6. Dez 2008 09:21

Re: ZEOS und firebird oder syntaxfehler ?
 
hast Recht, ist ja auch logisch ;-)

werde ich wohl das Statement umbauen müssen :-(

mkinzler 6. Dez 2008 09:23

Re: ZEOS und firebird oder syntaxfehler ?
 
Warum or ? :zwinker:
SQL-Code:
select * from kunden where kundennummer = :fkdnr for update with lock;
Wobei man natürlich * in der Feldliste vermeinden sollte

khh 6. Dez 2008 09:24

Re: ZEOS und firebird oder syntaxfehler ?
 
Zitat:

Zitat von mkinzler
Warum or ? :zwinker:
SQL-Code:
select * from kunden where kundennummer = :fkdnr for update with lock;
Wobei man natürlich * in der Feldliste vermeinden sollte

bei or hatte hier beim past das f gefehlt ;-)

khh 6. Dez 2008 09:28

Re: ZEOS und firebird oder syntaxfehler ?
 
Zitat:

Zitat von mkinzler
Warum or ? :zwinker:
SQL-Code:
select * from kunden where kundennummer = :fkdnr for update with lock;
Wobei man natürlich * in der Feldliste vermeinden sollte

also zum Verständnis:
ich führe obiges statment aus per execsql und anschliesend ein update kunden....?

und nach dem update ist der satz wieder frei?

mkinzler 6. Dez 2008 09:31

Re: ZEOS und firebird oder syntaxfehler ?
 
Nach Commit/Rollback der Transaktion -> Zeos nicht so geeignet

khh 6. Dez 2008 09:48

Re: ZEOS und firebird oder syntaxfehler ?
 
Zitat:

Zitat von mkinzler
Nach Commit/Rollback der Transaktion -> Zeos nicht so geeignet

mh, und was mache ich wenn ich bei zeos bleiben will?

mkinzler 6. Dez 2008 09:53

Re: ZEOS und firebird oder syntaxfehler ?
 
Per Api oder eigene Sperrverwaltung
http://www.delphipraxis.net/internal...ct.php?t=92159


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:40 Uhr.
Seite 1 von 2  1 2      

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