strSql.Format(_T("SELECT * FROM MsgInfo WHERE nID = %d"), pChangeMsg->nDevID);
_pRecordset->Open((LPTSTR)(LPCTSTR)strSql,_variant_t((IDispatch*)m_pConnectDatabase,true), AdoNS::adOpenStatic,AdoNS::adLockOptimistic,AdoNS::adCmdText);....varBLOB.vt = VT_ARRAY | VT_UI1;
varBLOB.parray = psa;
_pRecordset->GetFields()->GetItem("arCellList")->AppendChunk(varBLOB); 
::VariantClear(&varBLOB);
::SafeArrayDestroyData( psa); _pRecordset->MoveNext();为什么会在MoveNext的时候,锁住不动了?

解决方案 »

  1.   

    1. AdoNS::adOpenStatic改为动态光标试试。2. AppendChunk()后 Update();有时候记录集变更后,MoveNext(); 会失效。
      

  2.   

    将AdoNS::adOpenStatic修改为AdoNS::adOpenDynamic后,执行open失败,返回记录为_pRecordset->RecordCount 为-1
      

  3.   

    打开数据库连接前,调用:
    m_pConn->CursorLocation = adUseClient;
    方可使用RecordCount.. m_pConn是_ConnectionPtr类型智能指针变量..