MFC ADO ACCESS查询数据库,如果没有查询到指定记录,m_pRecordset返回什么值?

hoopool 2012-05-07 01:45:17
我想在查询前判断 是否有该条查询记录,我想用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?
...全文
282 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hoopool 2012-05-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

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

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

分给你
hdg3707 2012-05-07
  • 打赏
  • 举报
回复
看我的m_pRecordset没查到指定数据 返回0x056a74b8
这说明m_pRecordset返回的值是有效的,但不并代表是否查询到了数据,所以当这个变量返回的值有效时你就用返回记录数的函数来判断是否查询到数据信息
如果m_pRecordset无效,那么你操作就会出问题,程序就退出来了
hdg3707 2012-05-07
  • 打赏
  • 举报
回复
m_pRecordset->GetCount()(好象是这个函数,就是查询有多少条记录的函数,如果没查询到,返回的就是0,否则就是个大于1的数)
hoopool 2012-05-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

NULL值是不会有的,有错误的话都通过异常传递出来了。
没有错误的话都会返回一个智能指针,解析这个记录集智能指针获取返回的记录集。
[/Quote]
输入一个数据库中没有的号,用
try {
sql.Format("SELECT * FROM 会员信息表 WHERE 会员号 = '%s' " , number);
m_pRecordset = m_pConnection->Execute( _bstr_t(sql) , &RecordsAffected , adCmdText);
}
catch(_com_error e) {
MessageBox("对不起,无此会员记录,请确认后输入");
return;
}
没有捕获到异常。

我该怎么判断要查找的信息在数据库中不存在呢?
zyq5945 2012-05-07
  • 打赏
  • 举报
回复
NULL值是不会有的,有错误的话都通过异常传递出来了。
没有错误的话都会返回一个智能指针,解析这个记录集智能指针获取返回的记录集。

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧