zoukankan      html  css  js  c++  java
  • 实现压缩access(*.mdb)数据库的方法

    下面的函数用来压缩access数据库 需要增加ComObj单元

    //压缩与修复数据库,覆盖源文件

    function CompactDatabase(AFileName,APassWord:string):boolean;

    const

      SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Jet OLEDB:Database Password=%s;';

    var

      SPath,SFile:Array [0..254] Of Char;

      STempFileName:String;

      JE:OleVariant;

    begin

      GetTempPath(40,SPath);                       //取得Windows的Temp路径

      GetTempFileName(SPath,'~CP',0,SFile);  //取得Temp文件名,Windows将自动建立0字节文件

      STempFileName:=SFile;                        //PChar->String

      DeleteFile(STempFileName);                  //删除Windows建立的0字节文件

      try

        JE:=CreateOleObject('JRO.JetEngine'); //建立OLE对象,函数结束OLE对象超过作用域自动释放

        OleCheck(

               JE.CompactDatabase(format(SConnectionString,[AFileName,APassWord]),

                                               format(SConnectionString,[STempFileName,APassWord]))); //压缩数据库
                 //复制并覆盖源数据库文件,如果复制失败则函数返回假,压缩成功但没有达到函数的功能

        result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);

        DeleteFile(STempFileName);                 //删除临时文件

      except

        result:=false;                                       //压缩失败

      end;

    end;

  • 相关阅读:
    阿里云主机如何重装系统?
    Linux下mysql新建账号及权限设置
    Ahead-of-time compilation(AOT)
    XBOX ONE游戏开发常见问题
    云计算之路-阿里云上:RDS用户的烦恼
    数字证书原理
    《你不常用的c#之二》:略谈GCHandle
    批处理文件指定jre路径启动java桌面应用程序
    关于OAUTH2.0的极品好文
    第一天接触Orchard
  • 原文地址:https://www.cnblogs.com/hieroly/p/3502369.html
Copyright © 2011-2022 走看看