使用ADO时这样写:
m_strSQL.Format("select * from CTI_Agents where zJNGroup = 4;");
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open(_variant_t(m_strSQL), _variant_t((IDispatch*)theApp.m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);所对应的SQL语句可以查询出2条以上的结果。那么我在
while(!m_pRecordset->adoEOF){
    vChannelNO = m_pRecordset->GetCollect("zChannelNO");  
    m_pRecordset->MoveNext();
}
中,只能得到最后一条记录的zChannelNO字段的值。如何写才能得到满足条件的所有记录的zChannelNO字段的值呢,如何用数组完成。
还有一个问题就是如何得到满足条件的记录数。

解决方案 »

  1.   

    int i = 0;
    m_pRecordset->MoveFirst();
    while(!m_pRecordset->adoEOF){
        vChannelNO[i] = m_pRecordset->GetCollect("zChannelNO");  
        i++;
        m_pRecordset->MoveNext();
    }
      

  2.   

    int i=0;
    _variant_t temp[10];
    while(!m_pRecordset->adoEOF){
        vChannelNO = m_pRecordset->GetCollect("zChannelNO");  
        temp[i]=vChannelNO;
        i=i+1;
        m_pRecordset->MoveNext();
    }
      

  3.   

    CList<int,int>myList;while(!m_pRecordset->adoEOF){
        vChannelNO = m_pRecordset->GetCollect("zChannelNO");      myList.AddTail(vChannelNO );
        m_pRecordset->MoveNext();
    }
      

  4.   

    int i=0;
    _variant_t temp[10];
    while(!m_pRecordset->adoEOF){
        vChannelNO = m_pRecordset->GetCollect("zChannelNO");  
        temp[i]=vChannelNO;
        i=i+1;
        m_pRecordset->MoveNext();
      

  5.   

    m_pRecordset->MoveFirst();把记录集指针移到第一条记录去先