const SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Jet OLEDB:Database Password=%s;';function GetTempPathFileName:string; var SPath, SFile:array [0..254] of char; begin GetTempPath(254, SPath); GetTempFileName(SPath, '~SM', 0, SFile); result := SFile; DeleteFile(PChar(result)); end;procedure CompactDB(const DBFile: string); var vje: OleVariant; STempFileName: string; begin STempFileName := GetTempPathFileName; try vje := CreateOleObject('JRO.JetEngine'); vje.CompactDatabase( format(SConnectionString,[DBFile, '']), format(SConnectionString,[STempFileName, ''])); CopyFile(PChar(STempFileName), PChar(DBFile), False); DeleteFile(STempFileName); finally end; end;
var dbe:OleVariant; begin dbe:=CreateOleObject('dao.dbengine.36'); dbe.CompactDatabase('D:\aa.mdb','d:\bb.mdb','',0,';pwd= '); end; 或者 use dao97 var AccessEngine :DBEngine; AccessEngine:=CoDbEngine.Create; AccessEngine.CompactDatabase('D:\aa.mdb','d:\bb.mdb','',0,';pwd=');
SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Jet OLEDB:Database Password=%s;';function GetTempPathFileName:string;
var
SPath, SFile:array [0..254] of char;
begin
GetTempPath(254, SPath);
GetTempFileName(SPath, '~SM', 0, SFile);
result := SFile;
DeleteFile(PChar(result));
end;procedure CompactDB(const DBFile: string);
var
vje: OleVariant;
STempFileName: string;
begin
STempFileName := GetTempPathFileName;
try
vje := CreateOleObject('JRO.JetEngine');
vje.CompactDatabase(
format(SConnectionString,[DBFile, '']),
format(SConnectionString,[STempFileName, '']));
CopyFile(PChar(STempFileName), PChar(DBFile), False);
DeleteFile(STempFileName);
finally
end;
end;
dbe:OleVariant;
begin
dbe:=CreateOleObject('dao.dbengine.36');
dbe.CompactDatabase('D:\aa.mdb','d:\bb.mdb','',0,';pwd= ');
end;
或者
use dao97
var AccessEngine :DBEngine;
AccessEngine:=CoDbEngine.Create;
AccessEngine.CompactDatabase('D:\aa.mdb','d:\bb.mdb','',0,';pwd=');