我想在查询前判断 是否有该条查询记录,我想用m_pRecordset的返回值来判断。我用此种方法查询指定的记录
sql.Format("SELECT * FROM 会员信息表 WHERE 会员号 = '%s' " , m_CUSNO);
m_pRecordset = m_pConnection->Execute( _bstr_t(sql) , &RecordsAffected , adCmdText);
但如果在数据库中没有该条记录,及查询失败,那么m_pRecordset 返回值是什么?

我看我的m_pRecordset没查到指定数据 返回0x056a74b8, 这有什么规律么?为什么不是NULL?

解决方案 »

  1.   

    NULL值是不会有的,有错误的话都通过异常传递出来了。
    没有错误的话都会返回一个智能指针,解析这个记录集智能指针获取返回的记录集。
      

  2.   

     输入一个数据库中没有的号,用
    try {
    sql.Format("SELECT * FROM 会员信息表 WHERE 会员号 = '%s' " , number);
    m_pRecordset = m_pConnection->Execute( _bstr_t(sql) , &RecordsAffected , adCmdText);
    }
    catch(_com_error e) {
    MessageBox("对不起,无此会员记录,请确认后输入");
    return;

    没有捕获到异常。我该怎么判断要查找的信息在数据库中不存在呢?
      

  3.   

    m_pRecordset->GetCount()(好象是这个函数,就是查询有多少条记录的函数,如果没查询到,返回的就是0,否则就是个大于1的数)
      

  4.   

    看我的m_pRecordset没查到指定数据 返回0x056a74b8
        这说明m_pRecordset返回的值是有效的,但不并代表是否查询到了数据,所以当这个变量返回的值有效时你就用返回记录数的函数来判断是否查询到数据信息
        如果m_pRecordset无效,那么你操作就会出问题,程序就退出来了
      

  5.   


    谢谢, 我理解你的意思了, 我后来是用if(m_pRecordset->EndOfFile)  指针是否到底来判断m_pRecordset是否查到数据。分给你