本文整理自网络,侵删。
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
;
相关阅读 >>
Delphi xe8在firemonkey tlistbox中显示图像
Delphi sysutils.stringreplace - 替换
Delphi win32_networkadapter 网卡 参数说明
Delphi xe 泛型数组和splitstring处理数据
更多相关阅读请进入《Delphi》频道 >>