2,497
社区成员
发帖
与我相关
我的任务
分享
function Tfrm_QAK_Backup.RepairByJRO(): boolean; // 调用 JRO 压缩库文件
var
oleObject: OleVariant;
srcQAK, tmpQAK, bakQAK: string;
begin
srcQAK := _DIR_APP + 'QAK.MDB';
bakQAK := _DIR_APP + 'QAK_BAK.MDB';
tmpQAK := _DIR_APP + 'QAK_Tmp.MDB';
if FileExists(bakQAK) then DeleteFile(bakQAK);
CopyFile(PChar(srcQAK),PChar(bakQAK),False); // 做个备份,用语压缩出错误时恢复
try
try
oleObject:= createoleobject('JRO.JetEngine');
oleObject.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + srcQAK + ';Jet OLEDB:Database Password=' + _PSW_ACCESS + ';','Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + tmpQAK + ';Jet OLEDB:Database Password=' + _PSW_ACCESS + ';');
Sleep(2000); // 延时 2 秒
DeleteFile(srcQAK);
RenameFile(tmpQAK,srcQAK);
Result := True;
except
on EE: Exception do begin
Application.MessageBox(PAnsiChar('整理数据库文件失败,错误: ' + #13#13#10 + EE.Message),'YGQA 提示',16);
Result := False;
end;
end;
finally
oleObject := UnAssigned;
end;
end;