RETURNING 句の統一サポート(FireDAC)
コマンド テキストのプリプロセス(FireDAC) への移動
目次
説明
FireDAC には、{INTO}
エスケープ シーケンスが提供されており、Firebird、Oracle、PostgreSQL を対象に RETURNING
RETURNING 句の処理を簡素化および統一します。
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; // INTO にリストされている、最初のパラメータの値
{INTO}
内のパラメータは ptInputOutput として定義されます。 FireDAC では、RETURNING {INTO}
を INSERT/UPDATE SQL コマンドの一部として使用します。このコマンドは、更新をデータベースにポストするために自動生成されるものです。
- メモ: FireDAC では Firebird の
INTO
句を直接にはサポートできません。それをサポートしているのが、FireDAC で使用している DSQL ではなく PSQL だけだからです。 一方、{INTO}
エスケープ句を使用することはできます。 Firebird での他のオプションは、Open メソッドを 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; // RETURNING にリストされている、最初のフィールドの値