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

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

編輯:關於Access數據庫
下面的函數用來壓縮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