当我使用_RecordsetPtr的一个对象打开一个记录的时候,当记录为空的时候会出现异常:IDispatch error #3092
请问我该怎样做?

解决方案 »

  1.   

    m_pAccTagRst.CreateInstance("ADODB.Recordset");//instance Recordset
    m_pAccTagRst->Open(bstrSQL,_variant_t((IDispatch*)m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText); if(!m_pAccTagRst->adoEOF)
    {
    _variant_t FirstName=m_pAccTagRst->GetCollect("FirstName");
    _variant_t LastName=m_pAccTagRst->GetCollect("LastName"); m_First.SetWindowText((LPCTSTR)(_bstr_t)FirstName);
    m_Last.SetWindowText((LPCTSTR)(_bstr_t)LastName);
    m_pAccTagRst->MoveNext();
    } m_pAccTagRst->Close();
    m_pAccTagRst=NULL;
      

  2.   

    HRESULT hr=m_pOwnerRst->Open(bstrSQL,_variant_t((IDispatch*)m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
    if(SUCCEEDED(hr))
    {
    if(!m_pOwnerRst->adoEOF)
    {
    m_cboOwnerID=m_pOwnerRst->GetCollect("OwnerID").bstrVal;
    }
    }
      

  3.   

    void yourfuntion()
    {
       m_pRecordset.CreateInstance(__uuidof(Recordset));
      try
      {
        m_pRecordset->Open("SELECT * FROM 你的表名",m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
         if(m_pRecordset->adoEOF||m_pRecordset->BOF)
    {
         MessageBox("请先添加记录!","提示",MB_ICONINFORMATION);
    SendMessage(WM_CLOSE);
    m_pRecordset->Close();
                      return ;
    }
    ..........
        return;
      }
    catch(_com_error *e)
    {
    .......
    m_pRecordset->Close();
    }
    }