EOF 与 BOF

认识:

1.BOF(Before of File)指当前记录位置位于Recordset对象的第一个记录之前。

2.EOF(End of File)指当前记录位置位于Recordset对象的最后一个记录之后。

3.ADO(ADO (ActiveX Data Objects,ActiveX数据对象)) Recordset 对象用于

容纳一个来自数据库表的记录集。一个 Recordset 对象由记录和列(字段)组成。 在

ADO 中,此对象是最重要且最常用于对数据库的数据进行操作的对象。

4.这两个的属性值均返回布尔型:True和False,使用BOF和 EOF 属性可确定 Recordset 对象是否包含记录,或者从一个记录移动到另一个记录时是否超出 Recordset 对象的限制。

 EOFBOF
true当前行的位置是在最后一行的后面,无记录当前行的位置是在第一行之前,无记录
false当前行的位置是在最后一行或其前面,有记录当前位置是在第一行或其后,有记录

 

说明:

(1)如果当前记录位于第一个记录之前,BOF属性将返回 True(-1),如果当前记录为第一个记录或位于其后则将返回 False (0)。

(2)如果当前记录位于Recordset 对象的最后一个记录之后 EOF 属性将返回True,而当前记录为 Recordset 对象的最后一个记录或位于其前,则将返回 False。

(3)如果BOF 或 EOF 属性为 True,则没有当前记录。

(4)如果打开没有记录的Recordset 对象,BOF 和 EOF 属性将设置为True,而 Recordset 对象的 RecordCount 属性设置为零。打开至少包含一条记录的 Recordset 对象时,第一条记录为当前记录,而BOF 和 EOF 属性为 False。

(5)如果删除Recordset 对象中保留的最后记录,BOF 和 EOF属性将保持 False,直到重新安排当前记录。

方法:

1.该表显示了BOF和EOF属性的不同组合允许哪些Move方法。

 MoveFirst,
MoveLast
MovePrevious,
Move < 0
Move 0MoveNext,
Move > 0
BOF=True,
EOF=False
允许错误错误允许
BOF=False,
EOF=True
允许允许错误错误
同时为True错误错误错误错误
同时为 False允许允许允许允许

记是记不住的,得理解!

允许使用 Move 方法并不能保证该方法成功定位记录,只是意味着调用指定的 Move 方法不会产生错误。

2.下表说明当调用各种 Move 方法但未成功定位记录时 BOF和 EOF 属性设置所发生的情况。

 BOFEOF
MoveFirst, MoveLast设置为 True设置为 True
Move 0没有变化没有变化
MovePrevious, Move < 0设置为 True没有变化
MoveNext, Move > 0没有变化设置为 True

使用:

1、If mrc.EOF Then——当前指针在最后一条记录之后

2、If Not mrc.EOF Then——指针为到达最后一条记录

3、If mrc.BOF Then——当前指针在第一条记录之前

4、If Not mrc.BOF Then——指针未到达第一条记录

还有下面两种情况:

 1、If Not( mrc.EOF And Not mrc.BOF ) Then——指针位于记录集之中,一定有记录;

2、If mrc.EOF And mrc.BOF Then ——指针未在记录集之中,没有记录,说明数据库为空。

应用:

在我们的学生信息管理系统中,会涉及到对指针进行的MoveFirst、MoveLast、MovePrevious与MoveNext四种方法。一般来说,当需要对记录集Recordset中的所有行进行操作时,代码可以使用MoveNext,循环遍历各行,直到EOF属性被置为True

如果当 EOF 被置为 True 时再使用 MoveNext ,或当 BOF被置为 True 时再使用 MovePrevious ,都将产生一个提示代号为‘3021’的错误。

需要注意的是:允许一个Move 方法并非意味着,该方法能成功地定位某行。它仅表示执行这个指定的 Move 方法是允许的,并且不产生一个错误。 BOF 和 EOF属性的状态可以随着该移动的结果而改变。 

 

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 30
    评论
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值