var
dao: OLEVariant;
begin
dao := CreateOleObject('DAO.DBEngine.35');
dao.CompactDatabase('d:\yourDatabaseName.mdb',
'd:\yourNewCompactedDatabaseName.mdb');
end;
dao: OLEVariant;
begin
dao := CreateOleObject('DAO.DBEngine.35');
dao.CompactDatabase('d:\yourDatabaseName.mdb',
'd:\yourNewCompactedDatabaseName.mdb');
end;
Dim je As New JRO.JetEngine
je.CompactDatabase _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Northwind.mdb", _ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=NWD_ADOComp.mdb.mdb;" _
& "Jet OLEDB:Encrypt Database=True"
je.compactdatabase('d:\医院管理.mdb','d:\数据库\医院管理1.mdb');提示指定的字符串不符合OLE DB规定语句应该怎么写??
/////////////////////////////////////////////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) 重新编译