_variant_t VarBook;    CString   strSql;
    _RecordsetPtr m_pTempRecordset;
strSql.Format("select * from Parameter where RiQi ='%s' and PiCi = '%s'",
             pPACD->m_RiQi,pPACD->m_PiCi);
    HRESULT hTRes;    hTRes = m_pTempRecordset.CreateInstance(_T("ADODB.Recordset"));
    hTRes = m_pTempRecordset->Open((_bstr_t)strSql.GetBuffer(255),
_variant_t((IDispatch *)m_pConnection,true),
adOpenStatic,
adLockPessimistic,
adCmdText);
    if(m_pTempRecordset->GetRecordCount()>0)
{
         
  VarBook=m_pTempRecordset->Book;
             if (VarBook.vt == VT_EMPTY)
   {
                  printf("No Book set!\n");
   }
             else 
   {
                   m_pRecordset->Book = VarBook;//报错,另外我想pRecordset移                                                    //到VarBook的位置.
   
 SetDataToControl(pPACD);
   }
}
    else
{   
              AfxMessageBox("没有找到相关的记录!");
}

解决方案 »

  1.   

    设置客户端游标:m_pTempRecordset->CursorLocation = adUseClient;把上面一句添加到hTRes = m_pTempRecordset->Open((_bstr_t)strSql.GetBuffer(255),
    _variant_t((IDispatch *)m_pConnection,true),
    adOpenStatic,
    adLockPessimistic,
    adCmdText);
    的前面试试。。
      

  2.   

    对话框报:
    Runtime error
    abnormal program termination
      

  3.   

    初始化COM了吗?写了CoInitialize(NULL);或者AfxOleInit()没有??
      

  4.   

    有呀,我记录条数都大于0,说明recordset运行了的