c++ 数据库自动重连
自动重连代码在一个1秒钟的时间控件里面执行,问题是只要网络连接断开,软件就会卡死,不能执行任何操作。一直到重新连接到数据库软件才可以继续操作。
void __fastcall TfrmMain::tmr1Timer(TObject *Sender)
{
bool bLian=False;
try
{
qry1->Close();
qry1->Open();
bLian=True;
}
catch (Exception &exception)
{
dm->aConn->Close();
bLian=False;
Sleep(500);
}
if (!bLian)
{
try
{
dm->aConn->Open();
dm->qryCreateTemp->ExecSQL();//创建临时表,代码在控件里面。
bLian=True;
}
catch (Exception &exception)
{
}
}
}
[解决办法]
1 把这段代码放到一个线程里执行。
2 用异步方式执行连接。