首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

VB数据库中EOF跟BOF的认识与用法

2012-09-10 
VB数据库中EOF和BOF的认识与用法在这些天敲写和调试学生信息管理系统的时候,经常会用到EOF(Endof File)和B

VB数据库中EOF和BOF的认识与用法

      在这些天敲写和调试学生信息管理系统的时候,经常会用到EOF(Endof File)和BOF(Before of File),稍加不注意查询我们的数据库就会出错,那么这俩到底是何方神圣,是怎么用的,之间又有什么区别呢? 

一、认识

      BOF:指当前记录位置位于Recordset对象的第一个记录之前

      EOF:指当前记录位置位于Recordset对象的最后一个记录之后 

   这两个的属性值均返回布尔型:True和False,使用BOF 和 EOF 属性可确定 Recordset 对象是否包含记录,或者从一个记录移动到另一个记录时是否超出 Recordset 对象的限制。 下表即是各自的使用说明及查询结果: 

 

EOF

BOF

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,直到重新安排当前记录。


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

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

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

二、用法

    If objRs.BOF Then

    表示:当前指针的位置是在第一行记录之前,则...

    If objRs.EOF Then

    表示:当前指针的位置是在最后一行记录之后,则...

    If Not objRs.EOF Then

    表示:当前指针的位置没有到达最后一条记录

    If Not objRs.BOF then

    表示:当前指针的位置没有到达第一条记录

    推荐使用下面两条

    If Not (objRs.BOF AND objRs.EOF) Then

    表示:指针位于RecordSet 的当中(并非是最后一条和第一条) ,说明一定有记录。

    If objRs.BOF AND objRs.EOF Then

    表示:没有任何记录


17楼lbq613613昨天 19:48
对比总结!
Re: wlccomeon昨天 19:53
回复lbq613613n嗯,对比是个挺好的方法!
16楼lfmilaoshi昨天 19:28
积累。。。。米老师
Re: wlccomeon昨天 19:28
回复lfmilaoshin嗯!
15楼cjr15233661143前天 23:54
不错啊 昌哥
Re: wlccomeon前天 12:52
回复cjr15233661143n多谢夸奖!一起学习!
14楼mazhaojuan3天前 20:21
嗯,总结出来,清晰多了……
Re: wlccomeon3天前 20:42
回复mazhaojuann其实我想给图来着,但还是感觉文字好一些!
13楼wang136675393253天前 09:41
嗯总结的挺不错的,逻辑清楚,也容易理解。好!继续努力!
Re: dandanzmc3天前 11:04
回复wang13667539325n美言啊
Re: wlccomeon3天前 14:18
回复wang13667539325n好,有你的鼓励,一定加油![e03]
12楼wangyongxia9213天前 09:36
昌哥,加油
Re: wlccomeon3天前 09:37
回复wangyongxia921n[e04]
11楼zhanglianhai5553天前 09:25
强啊。。。。加油
Re: wlccomeon3天前 09:35
回复zhanglianhai555n加油!
10楼liujiahan6296293天前 09:22
好!
Re: wlccomeon3天前 09:23
回复liujiahan629629n[img]http://go.it608.com/plugin/QQandWW/WW/26.gif[/img]
9楼songhait3天前 09:11
恩、、
Re: wlccomeon3天前 09:22
回复songhaitn希望对您有所帮助!
8楼linlin802306194天前 19:45
再弄段代码,就更深刻啦~
Re: wlccomeon4天前 20:11
回复linlin80230619n嗯,以后朝这方面努力!
7楼yinjingjing1988084天前 19:31
不错!
Re: wlccomeon4天前 19:38
回复yinjingjing198808n谢谢![e10]
6楼lishehe4天前 19:26
加油
Re: wlccomeon4天前 19:26
回复lishehen一起加油!
5楼gxq7417186184天前 19:24
不错哦!昌哥
Re: wlccomeon4天前 19:25
回复gxq741718618n一起学习,共同分享!
4楼lvshihua4天前 19:23
不错,理解了,挺有帮助
Re: wlccomeon4天前 19:24
回复lvshihuan嗯,对大家有用就好!
3楼yi_zz4天前 09:45
不错哦~
Re: wlccomeon4天前 11:55
回复yi_zzn稀客呀,陈总!多谢您的夸奖哈!
2楼yangcancan05014天前 08:17
不错哎!学习了……
Re: wlccomeon4天前 08:25
回复yangcancan0501n一起学习!
1楼dandanzmc4天前 07:54
嘻嘻,挺好的
Re: wlccomeon4天前 08:06
回复dandanzmcn多谢小朱夸奖啊!
Re: dandanzmc4天前 08:06
回复wlccomeon不许叫我小朱

热点排行