求助,我用BCB写数据库连接,ADO方式,在网络断掉时老是不停弹出连接失败的窗口,有没有办法只让它弹出一次,然后就自动关闭程序? ( 积分: 200 )

  • 主题发起人 主题发起人 yehaicao
  • 开始时间 开始时间
Y

yehaicao

Unregistered / Unconfirmed
GUEST, unregistred user!
求助,我用BCB写数据库连接,ADO方式,在网络断掉时老是不停弹出《连接失败》的窗口,有没有办法只让它弹出一次,然后就自动关闭程序?
 
求助,我用BCB写数据库连接,ADO方式,在网络断掉时老是不停弹出《连接失败》的窗口,有没有办法只让它弹出一次,然后就自动关闭程序?
 
不要让程序再进行查询等操作,会引起自动连接数据库
 
try{
...
}
except(Exception &e){
if(e.message.pos("连接失败")>0){
ShowMessage("网络故障,自动关闭程序");
Application.Terminated;
}
}
 
dawnsong,我先谢谢你,我用的语言是bcb6.0,你的意见我用不了呀!
dawnsong,如果可以用的话,我应该把这段代码放在哪里呢?
 
你用什么控件连接的,在控件的ondisconnect事件中处理。
如果连接中断,会触发这个事件的。
 
chenxz,谢谢你,我先试一下。试一下行的话,我再给你加分。
 
我只是大概写了一下,将网络操作的部分包含到这段Try{}Except里面。
另外,pos("连接失败")只是表示一下,我一般是不这么对应错误处理的,好像这么做的也不多,呵呵。
异常类型还是需要你自己去搞清楚,这样才能正确的处理这个异常
 
ADOConnection1->ConnectionString.IsEmpty();
ADOConnection1->ConnectionString=ConnectPath("master");
try
{
//打开数据库
ADOConnection1->Open();
TIniFile *pIniFile = new TIniFile(FilePath+"//Server.ini");
pIniFile->WriteString("loy","connect","0");
delete pIniFile;
}
//打开失败
catch(Exception &e)
{
TIniFile *pIniFile = new TIniFile(FilePath+"//Server.ini");
pIniFile->WriteString("loy","connect","1");
delete pIniFile;
String aa="无法与服务器连接,可能有以下原因:";
aa=aa+"
/n(1)服务器没有开机";
aa=aa+"
/n(2)服务器的SQL Server2000没有启动";
aa=aa+"
/n如果不是以上两种情况,请与软件供应商联系。";
Application->MessageBox(aa.c_str(),"提示",MB_ICONQUESTION+MB_OK);
}
 
你可在ADOConnection的OnDisconnect事件中处理,比如提示一下,然后用Application.Terminate;退出程序。
 
后退
顶部