我用vc ado连接sql2005数据库,插入数据,都很正常,问题是服务器重启或者关闭,ado无法识别。IsOpen()和GetState()返回的都是1.不知道怎么回事?
我的连接串是:
CString strConnect = _T("Provider=SQLOLEDB.1; Data Source=") + dbsrc + 
 _T("; Initial Catalog=") + dbname  +
 _T("; User ID=") + user + 
 _T("; PWD=") + pass;
我的识别语句是:
if(!m_SMConnection.IsOpen() && !m_SMConnection.Open(m_SMConnection.GetConnectionText()))
{
m_SMConnection.Close();
strAnswer = pReqData->PacketAnswer(FALSE, _T("连接短信数据库失败"));
break;

_RecordsetPtr pRecset = m_SMConnection.Execute(str);

解决方案 »

  1.   

    只能自己做异常处理
    一般上执行完成操作后就把连接断开,下一个操作时再连接就可以了
    这样可以减少很多麻烦
      

  2.   

    错误种类很多阿,不能有错误就断开重连吧!
      

  3.   

    那就处理一些比较常见的错误,其他就最好重连一下
      

  4.   

    同意楼上。要不就每次对库操作时,再连接数据库,操作完再断开。这样就不会有问题了。