数据库通过odbc连接,当网络发生故障时,数据库连接不上,但是网络恢复后,数据库还是连不上?
为什么?我通过sleep(3000)好象也没有用.

解决方案 »

  1.   

    看看你用的什么数据库,如果是MySql的话设置心跳包测试网络是否通畅,如果断开后又连上了就重新初始化数据库。
      

  2.   

    我就是要用到的时候连的,数据库是sqlserver 2000
      

  3.   


    我是重新OPEN的,但这样就是不行。初始化的话,是否要new一下?
      

  4.   

    不用new
    如果发现断掉,我会调用这个函数
    bool CDataBase::InitDBConnection()
    {
    CString sDBUser = GetDBItem(m_sConnStr, "User ID=");
    CString sDBPassword = GetDBItem(m_sConnStr, "Password=");
    CoInitialize(NULL);
    try
    {
    CREATEINSTANCE(m_piConnection,Connection);//创建Connection对象
    m_piConnection->Open(_bstr_t(m_sConnStr),_bstr_t(sDBUser),_bstr_t(sDBPassword),NULL);
    }
    catch(_com_error &e)
        {
    DBErrManage(e);
    m_piConnection = NULL;
    CoUninitialize();
    return false;
        }
    return true;
    }能够重新连接。