如何压缩和修复Access2007数据库文件(.accdb)

xbrave 2008-12-07 07:44:57
如题
...全文
1099 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
oushengfen 2008-12-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xbrave 的回复:]
delphi真的没有人气了吗?
[/Quote]


不是这样讲,你不光说Delphi,这是由于MS变理造成的
aa20000 2008-12-14
  • 打赏
  • 举报
回复
压缩后与原文件大小出入很大吗?
mjtalhx 2008-12-14
  • 打赏
  • 举报
回复
没有用过ACCESS2007,应该和2003差不多吧!
qqlpp 2008-12-14
  • 打赏
  • 举报
回复
ding
ljluck7687 2008-12-14
  • 打赏
  • 举报
回复
没用过Access2007,与Access2003比较难道有重大变化?也许换一个ADO版本用楼上朋友的方法可以实现Access2007压缩
xbrave 2008-12-13
  • 打赏
  • 举报
回复
delphi真的没有人气了吗?
xbrave 2008-12-07
  • 打赏
  • 举报
回复
楼上的朋友,你的是压缩的Access2003,我想知道2007是怎么压缩的,谢谢
长沙三毛 2008-12-07
  • 打赏
  • 举报
回复
下面是俺用JRO压缩的代码,请参考:
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;
xbrave 2008-12-07
  • 打赏
  • 举报
回复
怎样用delphi编程实现,以前用的是2003,现在想试试2007,首先就遇到了连接问题,解决了连接,又遇到压缩与修复,看来升级是要付出劳动的.
xbrave 2008-12-07
  • 打赏
  • 举报
回复
怎样用delphi编程实现,以前用的是2003,现在想试试2007,首先就遇到了连接问题,解决了连接,又遇到压缩与修复,看来升级是要付出劳动的.
yinxd6112 2008-12-07
  • 打赏
  • 举报
回复
用TVclzip

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧