源码如下:(调试情况在单步执行时MOVENEXT不执行,直接调过,造成死循环)
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->CursorType =adOpenDynamic;
m_pRecordset=m_pConnection->Execute("SELECT * FROM DATA",&RecordsAffected,adCmdText);
_variant_t vID,vName,vAddress,vEmailAddress;
while(!m_pRecordset->EOF)
{
    vID=m_pRecordset->GetCollect(_variant_t((long)0));
    vName=m_pRecordset->GetCollect(_variant_t((long)1));
    vAddress=m_pRecordset->GetCollect(_variant_t((long)2));
             vEmailAddress=m_pRecordset->GetCollect(_variant_t((long)3));
             m_pRecordset->MoveNext;

}

解决方案 »

  1.   

    m_pRecordset=m_pConnection->Execute("SELECT * FROM DATA",&RecordsAffected,adCmdText);
    _variant_t vID,vName,vAddress,vEmailAddress;
    改成:
    m_pRecordset->Open("SELECT * FROM DATA",_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
    同时:m_pRecordset->CursorLocation=adUseClient;
      

  2.   

    while(!m_pRecordset->EOF)
    这一句好象应该改成
    while(!m_pRecordset->adoEOF)
    我也刚学 我是这么做的 
    请指正!
      

  3.   

    while(!m_pRecordset->EOF) 错误应该是while(!m_pRecordset->IsEOF())
    IsEOF是一个函数!!!而不是一个变量还有MoveNext也是函数,不是变量,应该这么写
    m_pRecordset->MoveNext();
      

  4.   

    同意 ssfly(终于入门了:)) 都是函数~~
      

  5.   

    问题解决了,应该用m_pRecordset->MoveNext();