在单独的线程中备份内存中SQLite数据库的正确方法

时间:2018-12-28 15:00:19

标签: delphi firedac

我使用docwiki中的示例

FDConnection1.DriverName := 'SQLite';
FDConnection1.Open;

FDSQLiteBackup1.Database := '\\srv\db\data.sdb';
FDSQLiteBackup1.DestDatabaseObj := FDConnection1.CliObj;
FDSQLiteBackup1.DestMode := smCreate;
FDSQLiteBackup1.Backup;

数据库FDConnection1正在主线程中工作。我想将其保存回单独的线程中的文件存储中,因为此操作需要花费很多时间

procedure TDBSaver.Execute; // separate thread
begin
  IntBackup.DriverLink := Link;
  IntBackup.WaitForLocks := true;
  IntBackup.DestDatabase:= '\\srv\db\data.sdb';
  IntBackup.DatabaseObj := FDConnection1.CliObj;
  IntBackup.Backup;
end;

这种方法是线程安全的吗?

0 个答案:

没有答案