如何判断或者得知 AdoConnection的数据库连接已经断开(由于数据库服务器已经关闭的情况下!)

okgxs 2004-11-22 02:28:13
如何判断或者得知 AdoConnection的数据库连接已经断开(由于数据库服务器已经关闭的情况下!)
我在afterDisConnected或者OndisConnected的事件中,写代码,在连接断开的时候都无法触发!
...全文
455 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzy6204 2004-12-10
  • 打赏
  • 举报
回复
用个timer控件,隔一段时间连接一次,连接不成功则证明已经断开
Stiven_PFan 2004-11-26
  • 打赏
  • 举报
回复
afterDisConnected或者OndisConnected只是在程序中断开时才会触发,意外的断开并不能触发这两个事件,你可以在程序加一个定时器,用另外一个ADOConnection每过一段时间连接一次数据库,设定ADOConnection的TIMEOUT值,

定时器中的代码。
ADOConnection.Close;
Try
ADOConnection.Connected=True;
Except
showmessage('与服务数据库已意外断开');
End;
Stiven_PFan 2004-11-26
  • 打赏
  • 举报
回复
afterDisConnected或者OndisConnected只是在程序中断开时才会触发,意外的断开并不能触发这两个事件,你可以在程序加一个定时器,用另外一个ADOConnection每过一段时间连接一次数据库,设定ADOConnection的TIMEOUT值,

定时器中的代码。
ADOConnection.Close;
Try
ADOConnection.Connected=True;
Accept
showmessage('与服务数据库已意外断开');
End;

okgxs 2004-11-26
  • 打赏
  • 举报
回复
网络在正常情况下没有任何问题,我把网线拔掉后,程序就会连接不到数据库,这时候我在把网线插上,此种情况下如何能够保证程序不重启的情况下,能够正常使用。
hhzqf1980 2004-11-22
  • 打赏
  • 举报
回复
if not ADOConnection1.Connected then
kuki84 2004-11-22
  • 打赏
  • 举报
回复
try
读数据
except
end;
bee2518 2004-11-22
  • 打赏
  • 举报
回复
如果用close断开的话,是不会触发这些事件的,只有用KILL才能彻底断开
参考http://www.delphibbs.com/delphibbs/dispq.asp?lid=1334885

2,507

社区成员

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

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