[delphi-users:4821] ローカルSQLiteをインメモリSQLiteに読み込むには

192 views
Skip to first unread message

OE

unread,
Jan 19, 2018, 3:38:10 AM1/19/18
to delphi...@freeml.com
こんにちは、OEです。

行数の多いデータへ何度も読み書きを行う必要があるので、
処理を高速化するためにオンメモリSQLiteを使おうと考えています。

ひとまず下記のコードにて、オンメモリSQLiteのテーブル作成手順がわかり、
それのファイルへの保存もできました。
そこで質問ですが、逆にローカルにあるSQLiteをオンメモリに読み込むには
どうすれば良いのでしょうか。

作業前にローカルのSQLite形式から読み込んで、
大量の作業時は読み書き全てをオンメモリで処理し、
作業後にローカルにSQLite形式で保存したいです。

アドバイス頂けたら幸いです。

//----------------------
// 使用コンポーネント
// TFDConnection , TFDQuery , TFDPhysSQLiteDriverLink ,
TFDPhysSQLiteDriverLink
//----------------------
procedure TForm1.Button1Click(Sender: TObject);
begin
FDConnection1.Params.Add('DriverID=SQLite');
FDSQLiteBackup1.Database := ':memory:';
FDPhysSQLiteDriverLink1.VendorLib :=
ExtractFilePath(Application.Exename)+'sqlite3.dll';
try
FDConnection1.Connected := True;
except
FDConnection1.Close;
Exit;
end;
ShowMessage('接続成功');

FDQuery1.Connection := FDConnection1;
FDQuery1.SQL.Text := 'CREATE TABLE test(name char(20),tell char(20));';
try
FDQuery1.Execute;
except
on E: Exception do begin
ShowMessage(E.Message);
Exit;
end;
end;
FDQuery1.Close;

//---メモリ上のDBをファイルに保存---
FDSQLiteBackup1.DatabaseObj := FDConnection1.CliObj;
// バックアップ先のファイルのファイル名
FDSQLiteBackup1.DestDatabase :=
ExtractFilePath(Application.Exename)+'System.db';
// バックアップ処理を実行する
FDSQLiteBackup1.Backup;

FDConnection1.Connected := false;
end;
//----------------------


MLホームページ: https://www.freeml.com/delphi-users

----------------------------------------------------------------------
Powered by freeml -- https://www.freeml.com/ --
------------------------------------------------------[freeml byGMO]--

あなたの街のチラシがいつでも無料で見放題!
チラシをクリックしてチラシが拡大されたらポイントゲット♪
まずはかんたん登録♪ -ポイントタウン-
https://www.pointtown.com/ptu/rd.cgi?cid=8912
----------------------------------------------------------------------

Reply all
Reply to author
Forward
0 new messages