Einheitliche Unterstützung für RETURNING (FireDAC)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Vorverarbeiten von Anweisungstext (FireDAC)


Inhaltsverzeichnis

Beschreibung

FireDAC beinhaltet die {INTO }-Escape-Sequenz zum Vereinfachen und Vereinheitlichen der RETURNING-Behandlung für Firebird, Oracle und PostgreSQL:

 FDQuery1.SQL.Text := 'insert into MyTab (f2, f3) values (:f2, :f3) returning f1 {into :f1}';
 FDQuery1.Params[0].AsString := 'qwe';
 FDQuery1.Params[1].AsInteger := 100;
 FDQuery1.ExecSQL;
 FDQuery1.Params[2].Value; // Value of a first parameter, listed in INTO

Die Parameter in {INTO } sind als ptInputOutput definiert. FireDAC verwendet RETURNING {INTO} als Teil der SQL-Anweisungen INSERT/UPDATE, die zum Eintragen von Aktualisierungen in einer Datenbank automatisch generiert werden.

Hinweis: FireDAC kann die INTO-Klausel von Firebird nicht direkt unterstützen, weil diese nur von PSQL, aber nicht von DSQL, was von FireDAC verwendet wird, unterstützt wird. Sie können jedoch die {INTO }-Escape-Klausel verwenden. Eine weitere Option für Firebird wäre die Verwendung der Methode Open anstatt ExecSQL:
 FDQuery1.SQL.Text := 'insert into MyTab (f2, f3) values (:f2, :f3) returning f1';
 FDQuery1.Params[0].AsString := 'qwe';
 FDQuery1.Params[1].AsInteger := 100;
 FDQuery1.Open;
 FDQuery1.Fields[0].Value; // Value of a first field, listed in RETURNING