下面的函数用来压缩access数据库 需要增加ComObj单元
//压缩与修复数据库,覆盖源文件
function CompactDatabase(AFileName,APassWord:string):boolean;
const
SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Jet OLEDB:Database Password=%s;';
var
SPath,SFile:Array [0..254] Of Char;
STempFileName:String;
JE:OleVariant;
begin
GetTempPath(40,SPath); //取得Windows的Temp路径
GetTempFileName(SPath,'~CP',0,SFile); //取得Temp文件名,Windows将自动建立0字节文件
STempFileName:=SFile; //PChar->String
DeleteFile(STempFileName); //删除Windows建立的0字节文件
try
JE:=CreateOleObject('JRO.JetEngine'); //建立OLE对象,函数结束OLE对象超过作用域自动释放
OleCheck(
JE.CompactDatabase(format(SConnectionString,[AFileName,APassWord]),
format(SConnectionString,[STempFileName,APassWord]))); //压缩数据库
//复制并覆盖源数据库文件,如果复制失败则函数返回假,压缩成功但没有达到函数的功能
result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
DeleteFile(STempFileName); //删除临时文件
except
result:=false; //压缩失败
end;
end;
相关文章:
-
2022-12-23
-
2021-12-04
-
2022-12-23
-
2021-12-09
-
2022-12-23
-
2021-12-27
-
2022-12-23
-
2021-12-13
猜你喜欢
-
2022-12-23
-
2022-12-23
-
2022-12-23
-
2021-06-08
-
2021-08-30
-
2021-12-10
相关资源
-
下载
2021-06-05
-
下载
2022-12-05
-
下载
2022-12-13
-
下载
2023-01-10