![]() |
Datenbank: Firebird • Version: 2 • Zugriff über: SQL
Firebird 2.0 und RETURNING
Ich bin bei Firebird 2 auf die RETURNING-Klausel gestoßen, die die Abfrage des Generator-Wertes eleganter löst.
Doch wie kann ich in Delphi diesen Wert ermitteln? Showmessage zeigt immer 0 an. In der Datenbank stehen die Daten drin. Hat jemand einen Tipp für mich? Das wäre super. Zitat:
|
Re: Firebird 2.0 und RETURNING
Delphi-Quellcode:
newid := ParamByName('id').Value;
|
Re: Firebird 2.0 und RETURNING
Leider hat der Trick nicht funktioniert. :-(
Der Compiler meldet einen Fehler (Parameter ID nicht gefunden). |
Re: Firebird 2.0 und RETURNING
Nicht ExecSQL, sondern Open verwenden.
|
Re: Firebird 2.0 und RETURNING
Wie man sich doch stundenlang mit solchen Problemen beschäftigen kann... :roll:
Ich habe es hinbekommen. Es lag an den verwendeten Komponenten von crLabs (IBDAC). Man muß beim Rückgabewert ein RET vor den Feldnamen setzen, statt ID also RET_ID.
Delphi-Quellcode:
@DeddyH Das Open funktioniert aber nicht.with DBank.IBC_Anschrift do begin Close; SQL.Clear; SQL.Add('INSERT INTO anschrift (AUFTRAG, Name_1, Name_2)'); SQL.Add('VALUES (''87777'', ''Schulze'', ''Nummer 2'')'); SQL.Add('RETURNING ID'); ExecSQL; NewID:= DBank.IBC_Anschrift.ParamByName('RET_ID').Value; ShowMessage(IntToStr(NewID); end; Trotzdem vielen Dank für die Anregungen. :-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 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