你的这个语句: m_ptrRecordset->Open(szSQL,L"Provider=SQLOLEDB.1;Persist Security Info=FALSE;User ID=sa;Password=123;Initial Catalog=数据中心;Data Source=FGZJNRAX3JHUZGS", adOpenKeyset, adLockOptimistic, adCmdText);//_bstr_t(m_strConnect)替换m_ptrConnection.GetInterfacePtr()
  m_ptrRecordset->Open(szSQL,_bstr_t(m_strConnect)),adOpenKeyset, adLockOptimistic, adCmdText);
  m_ptrRecordset->Open(szSQL,m_ptrConnection.GetInterfacePtr(),adOpenKeyset, adLockOptimistic, adCmdText);
第1个语句,已经打开了一个数据库连接了,难道是这个记录集,还打开2次数据库连接,这个好像有问题把

解决方案 »

  1.   

    不是,只要打开一次,第一条可以打开,后面2条打开不了,但是同样使用_bstr_t(m_strConnect)替代L"Provider=SQLOLEDB.1;Persist Security Info=FALSE;User ID=sa;Password=123;Initial Catalog=数据中心;Data Source=FGZJNRAX3JHUZGS"时,连接数据库时是正常的,在 m_ptrRecordset->Open下面就不行了。
      

  2.   

    m_ptrRecordset->Open(szSQL,_bstr_t(m_strConnect)),adOpenKeyset, adLockOptimistic, adCmdText);
      m_ptrRecordset->Open(szSQL,m_ptrConnection.GetInterfacePtr(),adOpenKeyset, adLockOptimistic, adCmdText); 前面一句传递的值就是"Provider=SQLOLEDB.1;Persist Security Info=FALSE;User ID=sa;Password=123;Initial Catalog=数据中心;Data Source=FGZJNRAX3JHUZGS" 后面一句错误,前面一句应该是正常的啊。