我写的服务端程序,刚开始运行能正常连接数据库,但是 运行 大概1分钟 左右后(连接对象始终没有关闭!且代码如下:
CString strConn="Driver={MySQL ODBC 5.1 Driver};
Server=192.168.1.111;Port=3306;Database=p;User=r;Password=1;Option=3;";
try
{
HRESULT hr = m_pConn.CreateInstance(_T("ADODB.Connection"));//ÕâÀï ÊǠн¨ µÄ Á¬½Ó¶ÔÏó
if   (SUCCEEDED(hr))
{
 
            m_pConn->Open((_bstr_t)strConn, "", "", adModeUnknown);//2²½£º´ò¿ªÕâ¸ö Á¬½Ó 
m_pConn->CommandTimeout=0;
m_pConn->CursorLocation = adUseClient;
   
MessageBox("Á¬½ÓÒÑ´ò¿ª");
}

       
}
    catch(_com_error &e)
{
CString str;
str.Format("Run-time error '%d(%x)' \r\r ErrorMessage %s",e.Error(),e.Description(),e.ErrorMessage());
AfxMessageBox(str);
}
),
当再次使用这个连接对象进行访问数据库(
代码:
try
{
//MessageBox(mac);
UpdateData(TRUE);


_bstr_t strSql("select * from ph_go where from='"+city+"'");

m_pRecordset.CreateInstance(__uuidof(Recordset));

m_pRecordset->Open(strSql,(IDispatch*)m_pConn,adOpenDynamic,adLockOptimistic,adCmdText);
m_pConn,adOpenDynamic,adLockOptimistic,adCmdText);

}
catch(_com_error &e)
{
CString str;
str.Format("Run-time error '%d(%x)' \r\r ErrorMessage %s",e.Error(),e.Description(),e.ErrorMessage());
AfxMessageBox(str);
})的时候就出现了错误如下图!~

解决方案 »

  1.   

    单步调试一下看是哪句出的问题。另外再加个通过的 catch (exception e试着捕捉一下。
      

  2.   

     m_pRecordset->Open(strSql,(IDispatch*)m_pConn,adOpenDynamic,adLockOptimistic,adCmdText);
             这句出的问题!~~
      

  3.   

    楼主用的是MY SQL ADMINISTRATOR吧,那个写存储过程不好,建议使用SQLyogEnt,那个方便些,至少注释中的中午不会出现乱码。