您的位置:首页 > 其它

ADO Recordset 判断记录是否为空

2011-07-15 09:52 99 查看
_RecordsetPtr getuser;

getuser.CreateInstance("ADODB.Recordset");

getuser->Open(user.GetBuffer(),   //查询语句
_variant_t((IDispatch*)m_db), //数据库
adOpenDynamic,
adLockOptimistic,
adCmdText);
if(getuser.BOF && getuser.EOF)
{//空记录
}


以下是帮助文档上面的内容

BOF 和 EOF 属性

BOF — 指示当前记录的位置在 Recordset 对象的第一个记录之前。

EOF — 指示当前记录的位置在 Recordset 对象的最后一个记录之后。

返回值

BOFEOF 属性返回 Boolean 值。
说明

使用 BOFEOF 属性确定 Recordset 对象是否包含记录,或者从一个记录移动到另一个记录时是否超出Recordset 对象的限制。
如果当前记录位于第一个记录之前,则 BOF 属性返回 True (-1)。如果当前记录是第一个记录或位于第一个记录之后,则返回False (0)。
如果当前记录位于最后一个记录之后,则 EOF 属性返回 True。如果当前记录是最后一个记录或位于最后一个记录之前,则返回False
如果 BOFEOF 属性为 True,则没有当前记录。
如果打开不包含记录的 Recordset 对象,则 BOF
EOF
属性被设置为 TrueRecordset 对象的
RecordCount 属性设置为零。当打开至少包含一个记录的 Recordset 对象时,第一个记录是当前记录,并且
BOF
EOF 属性均为 False
如果删除 Recordset 对象中保留的最后一个记录,BOF
EOF
属性将保持 False,直到重新定位当前记录为止。
下表说明对 BOFEOF 属性的不同组合所允许的
Move
方法。
MoveFirst

MoveLast
MovePrevious

Move < 0
Move 0MoveNext

Move > 0
BOF=True

EOF=False
允许错误错误允许
BOF=False

EOF=True
允许允许错误错误
均为 True错误错误错误错误
均为 False允许允许允许允许
允许使用 Move 方法但不能保证该方法可成功定位记录,只表明调用指定的 Move 方法不会产生错误。
下表显示当调用多个 Move 方法但未能成功定位记录时,BOF
EOF
属性设置所发生的情况。
BOFEOF
MoveFirst, MoveLast设置为 True设置为 True
Move 0没有变化没有变化
MovePrevious, Move < 0设置为 True没有变化
MoveNext, Move > 0没有变化设置为 True
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: