首页 > 解决方案 > 在单独的线程中备份内存中 SQLite DB 的正确方法

问题描述

我使用来自 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;

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

标签: delphifiredac

解决方案


推荐阅读