我们知道,由于使用内部高速缓存和临时缓冲区,MS Access文件随着使用时间快速增加。这些多余的空间的浪费远超出它对性能的影响,并且备份时会需要很大的空间。解决它的办法是压缩,通过选择Access 2000的菜单“工具-> 数据库实用工具-> 压缩和修复数据库”完成,或者也可以在你的Delphi程序中完成。 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:.mdb', 'e:.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) 重新编译
|