Delphi XE5のFireDACでSQLiteデータベースに接続してみました。
新規にVCLフォームアプリケーションを作成します。
フォームに次のコンポーネントを配置します。
- TButton
- TFDConnection
- TFDPhysSQLiteDriverLink
- TFDGUIxWaitCursor
FDConnection1を右クリックして「接続エディタ」を選択します。
ドライバIDを「SQLite」、Databaseにデータベースファイルのパスを設定します。
FDPhysSQLiteDriverLink1のVenderLibプロパティにsqlite3.dllのパスを設定します。
Button1のOnClickイベントを記述します。
procedure TForm1.Button1Click(Sender: TObject);
begin
try
FDConnection1.Connected := True;
ShowMessage('接続しました。');
finally
if FDConnection1.Connected then
FDConnection1.Close
end;
end;
実行時に設定する場合は、次のようにします。
procedure TForm1.Button1Click(Sender: TObject);
begin
FDConnection1.Params.Clear;
FDConnection1.Params.Add('DriverID=SQLite');
// データベースファイルのパス
FDConnection1.Params.Add('Database=c:\test\sample.sdb');
// sqlite3.dllのパス
FDPhysSQLiteDriverLink1.VendorLib := 'C:\driver\sqlite3.dll';
try
FDConnection1.Connected := True;
ShowMessage('接続しました。');
finally
if FDConnection1.Connected then
FDConnection1.Close
end;
end;
アプリケーションを起動して、ボタンをクリックすると、SQLiteデータベースに接続します。
データベースのパスを「:memory:」にするとインメモリ データベースを使用します。
データベースファイルは作成されません。
// データベースファイルのパス
FDConnection1.Params.Add('Database=:memory:');
SQLiteデータベースに接続するとき、データベースファイルがなければ自動的に作成されます。
データベースが作成されるとき「OpenMode」で指定した文字コードが使用されます。
なぜかDireDacになってますよ!:)
ありがとうございます。修正しました。