我在程序中一个函数压缩access数据库,但是系统提示说:已经被某某用户以独占方式打开。请教各位怎么解决啊?

georgehappy 2003-09-11 03:35:15
你是大哥!
...全文
34 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
palu 2003-09-11
  • 打赏
  • 举报
回复
在调用这个函数之前要关闭对这个access库的连接
palu 2003-09-11
  • 打赏
  • 举报
回复
在调用此函数之前关闭对这个access库的连接
georgehappy 2003-09-11
  • 打赏
  • 举报
回复
是,就是我的当前程序打开了这个数据库,我的意思怎么先断开与数据库连接,压缩后,恢复连接
给出这个函数:
function CompactDatabase(AFileName,APassWord:string):boolean;

var
STempFileName:string;
vJE:OleVariant;
Const
SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'
+'Jet OLEDB:Database Password=%s;';

begin
STempFileName:=GetTempPathFileName;
try
vJE:=CreateOleObject('JRO.JetEngine');
vJE.CompactDatabase(format(SConnectionString,[AFileName,APassWord]),
format(SConnectionString,[STempFileName,APassWord]));
result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
DeleteFile(STempFileName);
except
result:=false;
end;
sjlsy 2003-09-11
  • 打赏
  • 举报
回复
可能有其它软件在使用权用该数据库,如:你在用Access修改该数据库
trampgzy 2003-09-11
  • 打赏
  • 举报
回复
那个独占的人可能就是你
你没打开它吗?
关闭重新启动看看
WWWWA 2003-09-11
  • 打赏
  • 举报
回复
代码?

2,497

社区成员

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

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