程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 用程序實現壓縮access(*.mdb)數據庫的方法

用程序實現壓縮access(*.mdb)數據庫的方法

編輯:Delphi
下面的函數用來壓縮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;
  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved