博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FireDAC 下的 Sqlite [7] - 备份、优化、事务(Transaction)
阅读量:6092 次
发布时间:2019-06-20

本文共 1031 字,大约阅读时间需要 3 分钟。

  hot3.png

用 TFDSQLiteBackup 控件, 两三行代码即可完成 Sqlite 数据库的备份.

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;

转载于:https://my.oschina.net/hermer/blog/320568

你可能感兴趣的文章
结合当前公司发展情况,技术团队情况,设计一个适合的技术团队绩效考核机制...
查看>>
python-45: opener 的使用
查看>>
cad图纸转换完成的pdf格式模糊应该如何操作?
查看>>
Struts2与Struts1区别
查看>>
网站内容禁止复制解决办法
查看>>
Qt多线程
查看>>
我的友情链接
查看>>
想说一点东西。。。。
查看>>
css知多少(8)——float上篇
查看>>
NLB网路负载均衡管理器详解
查看>>
水平添加滚动条
查看>>
PHP中”单例模式“实例讲解
查看>>
VM EBS R12迁移,启动APTier . AutoConfig错误
查看>>
atitit.细节决定成败的适合情形与缺点
查看>>
Mysql利用binlog恢复数据
查看>>
我的友情链接
查看>>
用yum安装mariadb
查看>>
一点IT"边缘化"的人的思考
查看>>
WPF 降低.net framework到4.0
查看>>
搭建一个通用的脚手架
查看>>