procedure TForm1.Button1Click(Sender: TObject); begin {先初始化目標} FDConnection1.DriverName := 'SQLite'; FDConnection1.Params.Add('Database=C:\Temp\FDDemo_Back.sdb'); //如果不指定這個路徑, 就是備份到內存 FDConnection1.Open(); {備份 C:\Temp\FDDemo.sdb} FDSQLiteBackup1.DriverLink := FDPhysSQLiteDriverLink1; FDSQLiteBackup1.Database := 'C:\Temp\FDDemo.sdb'; //支持 Url FDSQLiteBackup1.DestDatabaseObj := FDConnection1.CliObj; FDSQLiteBackup1.Backup; end;
經過一些操作後, 數據庫可能會有碎片, 這時可通過 TFDSQLiteValidate 控件的 Sweep 方法執行優化.
{常見代碼} begin FDSQLiteValidate1.DriverLink := FDPhysSQLiteDriverLink1; FDSQLiteValidate1.Database := 'C:\Temp\FDDemo.sdb'; FDSQLiteValidate1.Sweep; //也可以通過連接參數 auto_vacuum = FULL; (0:NONE, 1:FULL, 2: INCREMENTAL) 指定自動清理 end;
爲避免數據庫操作中的失誤, 可通過事務(Transaction) 來回滾; 它應該是被普遍使用的手段.
{常見代碼} begin FDConnection1.StartTransaction; //開始一個事務 try {可能會出錯的代碼} FDConnection1.Commit; //提交 except FDConnection1.Rollback; //回滾 end; end;