我先用
m_pRs->PutCollect("nickname",_variant_t(RegisterData));
......
把数据写到ACCESS数据库后
想用下面的语句来得到当前行(刚刚写的那一行)的id号(id为自动编号),却无法实现,而得到这一行(nickname......)的其他值都可以,我把下面的语句放在m_pRs->Update()的前后都试过了,就是得不到“id”的值,谁能告诉我为什么啊?
谢谢各位了,急用!!!!!!!!
.......................
_variant_t vFieldValue;
         CString strFieldValue;
vFieldValue=m_pRs->GetCollect("id");
         strFieldValue=(char*)_bstr_t(vFieldValue);
..................

解决方案 »

  1.   

    vFieldValue=m_pRs->GetCollect("id");
    id字段如果是第一个
    换成
    vFieldValue=m_pRs->GetCollect(0);
    试试
    用索引,不用字段名字
      

  2.   

    范例:void CTestadoView::OnTotalRecords() 
    {
    _RecordsetPtr m_pRecordset;
    _variant_t RecordsAffected;
    m_pRecordset =m_pConnection->Execute("SELECT COUNT(*) FROM new where ID > 0",&RecordsAffected,adCmdText);
    _variant_t vIndex = (long)0;
    _variant_t vCount = m_pRecordset->GetCollect(vIndex);
    ///取得第一个字段的值放入vCount变量
    m_pRecordset->Close();///关闭记录集
    CString Message;
    Message.Format("共有%d条记录",vCount.lVal);
    AfxMessageBox(Message);///显示当前记录条数
    }
      

  3.   

    谢谢你啊~ id不是第一个 但我已经解决了。
    我用m_pRs->MovePrevious();进入上一行
    再用m_pRs->MoveNext();进入下一行就能得到正确的id了真是见鬼