关于MFC中用ADO访问数据库

用Recordset对象的open方法取得一个记录集,如何判断该记录集中没有记录呢?比如你用m_pRecordset->Open("select*fromstudentw... 用Recordset对象的open方法取得一个记录集,如何判断该记录集中没有记录呢?
比如你用
m_pRecordset->Open("select * from student where sno=11",...);
如果没有“sno=11”这个学生,那返回的记录集应该是空的,怎么判断这个记录集没有内容呢???
if(m_pRecordset->adoEOF)
{
;空的

}
这个我试过了....
不行的。。adoEOF这是当前的位置是否位于Recorset对象的的最后一个记录之后。如果没有“sno=11”这个学生,那里面的记录集是有记录的,只是一个空记录,指针并没有越界。
if(m_pRecordset->RecordCount>0)
这个我也试过了..不行..
如果空记录的话,RecordCount返回值是1,它有一条记录,只是记录为空。。
请高手帮忙啊!!!!
展开
 我来答
百度网友63269df6d
2007-12-17
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
try{
if (m_recordset->BOF)
{
MessageBox("数据库为空!");
return;
}
catch
{
}
不应该是EOF,是BOF
因为EOF是指球当前记录位置位于RECORDSET对象的最后一个记录之后,而BOF是指球当前记录位置位于RECORDSET对象的第一个记录之前
楼主分析下~
我也是菜菜~
eeko2005
2007-12-17 · TA获得超过1357个赞
知道小有建树答主
回答量:825
采纳率:100%
帮助的人:280万
展开全部
bool IsEof()
{return m_pRecordset->adoEOF == VARIANT_TRUE;};
bool IsBof()
{return m_pRecordset->BOF == VARIANT_TRUE;};

bool IsExist()
{
if(IsBof() && IsEof())
return false;
else
return true;
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Jason_Cai
2007-12-17 · TA获得超过251个赞
知道小有建树答主
回答量:232
采纳率:0%
帮助的人:215万
展开全部
if(m_pRecordset->adoEOF)
{
;空的

}

你试过了吗就说不行

绝对不可能,RecordCount = 1还能记录为空,不知道你怎么看的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
人间行客2629
2007-12-17 · TA获得超过114个赞
知道答主
回答量:222
采纳率:0%
帮助的人:0
展开全部
m_pRecordset->Open("select * from student where sno=11",...);
open方法会返回一个值,有的话好像返回的是true,判断这个就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
DSF010
2007-12-15
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
if(m_pRecordset->RecordCount>0)
{
//有记录
}
else
{
//没有记录

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yangyi12378
2012-05-08
知道答主
回答量:27
采纳率:100%
帮助的人:4.5万
展开全部
pRst->Open("student",pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdTable);
if(m_pRst->adoEOF)
{
;空的

}
就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式