Welcome

首页 / 软件开发 / Delphi / Delphi FireDAC 下的 Sqlite(七) 备份、优化和事务(Transaction)

Delphi FireDAC 下的 Sqlite(七) 备份、优化和事务(Transaction)2015-02-13用 TFDSQLiteBackup 控件, 两三行代码即可完成 Sqlite 数据库的备份.

procedure TForm1.Button1Click(Sender: TObject);begin{先初始化目标}FDConnection1.DriverName := "SQLite";FDConnection1.Params.Add("Database=C:TempFDDemo_Back.sdb"); //如果不指定这个路径, 就是备份到内存FDConnection1.Open();{备份 C:TempFDDemo.sdb}FDSQLiteBackup1.DriverLink := FDPhysSQLiteDriverLink1;FDSQLiteBackup1.Database := "C:TempFDDemo.sdb";//支持 UrlFDSQLiteBackup1.DestDatabaseObj := FDConnection1.CliObj;FDSQLiteBackup1.Backup;end;

经过一些操作后, 数据库可能会有碎片, 这时可通过 TFDSQLiteValidate 控件的 Sweep 方法执行优化.

{常见代码}beginFDSQLiteValidate1.DriverLink := FDPhysSQLiteDriverLink1;FDSQLiteValidate1.Database := "C:TempFDDemo.sdb";FDSQLiteValidate1.Sweep; //也可以通过连接参数 auto_vacuum = FULL; (0:NONE, 1:FULL, 2: INCREMENTAL) 指定自动清理 end;
为避免数据库操作中的失误, 可通过事务(Transaction) 来回滚; 它应该是被普遍使用的手段.

{常见代码}beginFDConnection1.StartTransaction; //开始一个事务try{可能会出错的代码}FDConnection1.Commit; //提交exceptFDConnection1.Rollback; //回滚end;end;
Author:cnblogs 万一