_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 对象的最后一个记录之后。
返回值
BOF 和 EOF 属性返回 Boolean 值。
说明
使用 BOF 和 EOF 属性确定 Recordset 对象是否包含记录,或者从一个记录移动到另一个记录时是否超出Recordset 对象的限制。
如果当前记录位于第一个记录之前,则 BOF 属性返回 True (-1)。如果当前记录是第一个记录或位于第一个记录之后,则返回False (0)。
如果当前记录位于最后一个记录之后,则 EOF 属性返回 True。如果当前记录是最后一个记录或位于最后一个记录之前,则返回False。
如果 BOF 或 EOF 属性为 True,则没有当前记录。
如果打开不包含记录的 Recordset 对象,则 BOF 和 EOF 属性被设置为 True,Recordset 对象的 RecordCount 属性设置为零。当打开至少包含一个记录的 Recordset 对象时,第一个记录是当前记录,并且 BOF 和 EOF 属性均为 False。
如果删除 Recordset 对象中保留的最后一个记录,BOF 和 EOF 属性将保持 False,直到重新定位当前记录为止。
下表说明对 BOF 和 EOF 属性的不同组合所允许的 Move 方法。
MoveFirst MoveLast | MovePrevious Move < 0 | Move 0 | MoveNext Move > 0 | |
---|---|---|---|---|
BOF=True EOF=False | 允许 | 错误 | 错误 | 允许 |
BOF=False EOF=True | 允许 | 允许 | 错误 | 错误 |
均为 True | 错误 | 错误 | 错误 | 错误 |
均为 False | 允许 | 允许 | 允许 | 允许 |
允许使用 Move 方法但不能保证该方法可成功定位记录,只表明调用指定的 Move 方法不会产生错误。
下表显示当调用多个 Move 方法但未能成功定位记录时,BOF 和 EOF 属性设置所发生的情况。
BOF | EOF | |
---|---|---|
MoveFirst, MoveLast | 设置为 True | 设置为 True |
Move 0 | 没有变化 | 没有变化 |
MovePrevious, Move < 0 | 设置为 True | 没有变化 |
MoveNext, Move > 0 | 没有变化 | 设置为 True |