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 对象的最后一个记录之后。
返回值
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 方法但未能成功定位记录时,BOF 和
EOF 属性设置所发生的情况。
BOF | EOF | |
---|---|---|
MoveFirst, MoveLast | 设置为 True | 设置为 True |
Move 0 | 没有变化 | 没有变化 |
MovePrevious, Move < 0 | 设置为 True | 没有变化 |
MoveNext, Move > 0 | 没有变化 | 设置为 True |
相关文章推荐
- [LeetCode]551. Student Attendance Record I(根据学生出勤记录判断是否应获奖金)
- oracle 插入数据之前判断是否有记录
- MySQL中判断记录是否存在的几种方法
- Android 记录ListView滚动的位置的三种方法及判断是否滑动到底部
- 判断表是否存在关联记录
- 判断记录是否存在和日期差操作
- 如何判断DataSet是否有记录呢?
- PHP判断数据库中的记录是否存在的方法
- oracle触发器中判断记录是否为空
- 记录未登录用户是否做过调查判断;
- 用SQL语句判断数据库中的记录是否存在
- 如何判断一个sqldatareader是否有记录,或者记录数有多少条
- 【Unity3D自学记录】判断物体是否在镜头内
- mysql中判断记录是否存在方法比较
- 判断内表中是否有某条记录
- 先判断记录是否存在,不存在则将记录插入表的sql语句
- Oracle Length 和 Lengthb 函数说明 .(用来判断记录值里是否有中文内容)
- ajax判断用户是否可以增加一条记录
- 如何判断ACCESS数据表中的某条记录是否存在
- 【Unity3D自学记录】判断物体是否在镜头内