服务器是用的unix,oracle版本是7.3.4 ,
语句是这样的
m_pRDSet->Open( “select * from table” , _variant_t( ( IDispatch * )m_pDBConn, true ), adOpenKeyset, adLockReadOnly, adCmdText );
确实已得到记录,而且可以取得记录的值,但用
long count = m_pRDSet->RecordCount;
取得的count值是 -1.而用vb就能取得正确的记录数请问为何?

解决方案 »

  1.   

    第一有可能是参数不对,试试这个
    m_pRs->Open(buf,gl_pConnection.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);
    第二需要先将游标移动到第一条纪录
    m_pRs->MoveFirst();
    iCount = m_pRs->RecordCount ; //得到记录数
    我的程序中这样没有问题。
      

  2.   

    打开时用adOpenStatic,adLockOptimistic,
    就可以了
      

  3.   

    RecordSet->RecordCount是返回你查询过的记录的个数,如果你一个都没有查询过,返回地就是-1。所以你要把取出来的记录都走一遍再调用RecordSet->RecordCount