zoukankan      html  css  js  c++  java
  • FireDAC 下的 Sqlite [7]

    用 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';        //支持 Url
      FDSQLiteBackup1.DestDatabaseObj := FDConnection1.CliObj;
      FDSQLiteBackup1.Backup;
    end;
    


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


    {常见代码}
    begin
      FDSQLiteValidate1.DriverLink := FDPhysSQLiteDriverLink1;
      FDSQLiteValidate1.Database := 'C:TempFDDemo.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;
  • 相关阅读:
    mysql 查询当月天数
    mybatis <collection>标签 类型为string时无法获取重复数据错误
    eclipse 关闭validating
    YAGNI 声明
    tomcat 异常
    svn 用cmd命令行启动服务
    linux 命令
    windows10安装liux系统
    一带一路是个啥?
    串口通信协议
  • 原文地址:https://www.cnblogs.com/yjhb/p/11804232.html
Copyright © 2011-2022 走看看