程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
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