Function CompactAndRepair(sOldMDB : String; sNewMDB : String) : Boolean;
const
sProvider = 'Provider=Microsoft.Jet.OLEDB.4.0;';
var
oJetEng : JetEngine;
begin
sOldMDB := sProvider + 'Data Source=' + sOldMDB;
sNewMDB := sProvider + 'Data Source=' + sNewMDB;
try
oJetEng := CoJetEngine.Create;
oJetEng.CompactDatabase(sOldMDB, sNewMDB);
oJetEng := Nil;
Result := True;
except
oJetEng := Nil;
Result := False;
end;
end;
示例:
if CompactAndRepair('e:/Old.mdb', 'e:/New.mdb') then
ShowMessage('Successfully')
else
ShowMessage('Error…');
重要注意:
1- 在你的uses语句中加入JRO_TLB单元。
2- 在压缩的过程中,其它人不能打开或使用数据库。
3- 如果你的编译器报告没有找到JRO_TLB单元,就按以下步骤去做:
a) 在Delphi IDE中选择Project - Import Type Library.
b) 往下翻直到你找到“Microsoft Jet and Replication Objects 2.1 Library”.
c) 点击Install按钮
d) 重新编译