FireDACでSQLiteデータベースのAUTOINCREMENT列に登録された取得するには

SQLiteデータベースのAUTOINCREMENT列に登録された値は、SQLiteのlast_insert_rowid関数を使って取得できます。
しかし、last_insert_rowid関数を使うとプログラムはSQLiteに密に結合してしまいます。

FireDACでは、TFDConnectionにあるGetLastAutoGenValueメソッドを使って、SQLiteデータベースのAUTOINCREMENT列に登録された取得することができます。

サンプルコードです。

// sqlite3.dllのパス
FDPhysSQLiteDriverLink1.VendorLib := 'C:\driver\sqlite3.dll';
// データベースに接続する
FDConnection1.Params.Clear;
FDConnection1.Params.Add('DriverID=SQLite');
FDConnection1.Params.Add('Database=:memory:');
FDConnection1.Connected := True;
/ /テーブルを作成する
FDConnection1.ExecSQL('CREATE TABLE TBL1(ID INTEGER PRIMARY KEY AUTOINCREMENT, F1 TEXT, F2 TEXT)');

// 行を追加する
FDQuery1.SQL.Text := 'insert into TBL1(F1, F2) values (:F1, :F2)';
FDQuery1.ParamByName('F1').AsString := 'Delphi';
FDQuery1.ParamByName('F2').AsString := 'Object Pascal';
FDQuery1.ExecSQL;

// AUTOINCREMENT列に登録された値を取得する
ShowMessage(FDConnection1.GetLastAutoGenValue('TBL1'));

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください