求教关于独占打开报错的代码
由于客观原因。我需要将访问dbf文件采用独占方式打开。当打开时发现原文件已被调用就弹出提示框。
请问谁可以教教我?急用。
因为如果dbf被独占以后再访问的话,BDE就会提示报错并出错非法关闭。我想拦截这个出错信息,改为弹出对话框,让用户从正常途径手动退出程序。
或求:网络共享程序和dbf,但每次只允许唯一一位用户对该dbf进行操作的简单易行方法。
问题点数:100、回复次数:6Top
1 楼hammer_shi(dmresearch)回复于 2002-06-05 20:54:50 得分 1
你是不是网络上的文件?
要是不是,那么只要看看那个文件是不是在本机上打开就可以了!Top
2 楼lxpbuaa(桂枝香在故国晚秋)回复于 2002-06-05 21:10:47 得分 79
这个很容易,设置数据集(假设为Table1)的属性Exclusive为true就行了。
try
Table1.Open;
except
Table1.Close;
ShowMessage('对不起,该表已经被别的用户或者应用程序独占!');
end;
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
I.Desire := '加不加分随你';
—————————————————————————————————
Top
3 楼gzsteven(风无恨)回复于 2002-06-05 21:42:16 得分 0
嘻嘻,晕~
to:lxpbuaa(桂枝香在故国晚秋)
刚才看到你的回复差点以为下面那个签名也是正文。
谢谢。你的答案就是跟我想要的方式。因为我很菜。所以之前还不会用try的命令,还不是很熟。谢谢。如果运行没出错的话这个就是我想要的答案了。
再次感谢。Top
4 楼ihihonline(潇潇->戒烟)回复于 2002-06-05 21:54:40 得分 20
嘻嘻,楼主;
在设计期上边是调用其BDE的,但是成了.exe就好了Top
5 楼gzsteven(风无恨)回复于 2002-06-06 03:09:42 得分 0
唔~
确实。生成EXE就可以了。
不过虽然是有提示弹出来了。不过程序依然继续运行,所以还是弹出Table is Busing。XXXX。。。。的出错提示。然后非法关闭了。
如何才能够让程序中断运行呢?
在后面直接加Form.Close还是不行。
Top
6 楼gzsteven(风无恨)回复于 2002-06-06 10:22:23 得分 0
这样写终于解决了。
begin
try
Table1.Open;
except
on EDataBaseError do
begin
ShowMessage('对不起,该表已经被别的用户或者应用程序独占!');
Table1.Close;
end;
//table1.open
end;
end;
end.Top




