function CompactMDB(const DBFile, Pwd: string): boolean;
var
TempDBFile: string;
ConStr: string;
JE: OleVariant;
begin // Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=..\Data\alarm.mdb;Mode=Share Deny None;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;
ConStr := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;' +
'Jet OLEDB:Database Password=HYGEA;';
TempDBFile := ExtractFilePath(Application.ExeName) + 'TEMP.mdb';
try
JE := CreateOleObject('JRO.JetEngine');
JE.CompactDatabase(Format(ConStr, [DBFile, Pwd]),
Format(ConStr, [TempDBFile, Pwd]));
Result := CopyFile(PChar(TempDBFile), PChar(DBFile), False);
DeleteFile(PChar(TempDBFile));
except
Result := False;
end;
end;
procedure THCMainForm.HCMaintenanceFrameButton7Click
(Sender: TObject);
begin
CompactMDB(ExtractFilePath(Application.ExeName) + 'alarm.mdb',
'');
end;Delphi压缩access数据库
最新推荐文章于 2019-04-26 16:58:15 发布
本文介绍了一个用于紧凑Microsoft Access数据库文件的Delphi函数CompactMDB。该函数通过创建临时数据库文件并使用OLE对象进行压缩操作,最后将压缩后的临时文件替换原始数据库文件。文章还提供了一个示例,展示了如何在界面上调用此函数来压缩特定的Access数据库。
1831

被折叠的 条评论
为什么被折叠?



