谢谢

解决方案 »

  1.   

    可能性很多!
    只能贴出程序才明白是什么问题?
    1。数据库为空。
    2。打开记录集错误
    3。sql语句错误。
    。。
    等等
      

  2.   

    to  every:你说的情况都没有,要不我也不会问了,我还没初级到那种程度,我可以循环得到记录数,但是GetRecordCount返回-1,还有PageCount属性也返回-1,我在想是不是先要设置什么?
      

  3.   

    试一下先把打开的数据集指针指到第一个记录然后再做一下 GetCount 
                            ^^^^^^^^^^^^^
      

  4.   

    返回-1是ADO无法确定有无记录
    MSDN上说,在移动道最后一条记录之前,ADO无法确定记录数
    MoveLast一下试试
      

  5.   

    to Saimen:试过,没用。
    CAdoDemo2Dlg* pDlg=(CAdoDemo2Dlg*)AfxGetApp()->GetMainWnd();
    _ConnectionPtr pConn=pDlg->GetConn(); CString strCmdText=_T("SELECT emp_id,fname,job_lvl,hire_date FROM employee");
    HRESULT hr; try
    {
    //hr=m_pRs.CreateInstance(__uuidof(Recordset));
    hr=m_pRs.CreateInstance("ADODB.Recordset");
    if(SUCCEEDED(hr))
    {
    m_pRs->Open((LPCTSTR)strCmdText,
    _variant_t((IDispatch*)pConn,true),adOpenDynamic,adLockOptimistic,adCmdUnknown);
    }
    }
    catch(_com_error e)
    {
    CString ErrMessage;
    ErrMessage.Format("打开数据表失败\r\n 错误信息:%s",e.ErrorMessage());
    AfxMessageBox(ErrMessage,MB_OK|MB_ICONWARNING);
    }
    m_pRs->MoveFirst();
    m_pRs->GetRecordCount();//返回-1.!!!!!!!!!!
      

  6.   

    不用试了,我知道了,谢谢 every,我想起来了,以前我遇到过。