机房收费系统总结之一BOF和EOF

在学生信息管理系统和机房收费系统中,我们经常遇见这样的情况。

出现错误的原因是什么,就是我们对于数据查询的临时记录出现了问题,系统需要数据,可这时候他可能找不到数据了,就会出现这样的问题

BOF EOF又是我们在调用数据库时常用到的,所以自己就把这些总结了一下,给自己留下一个提示。

 






根据图来看,可以便于我们理解

使用ADO连接数据库进行查询的时候,数据库将查询结果返回查询端,在查询端的内存里面就会有一个列表,这个列表存放的就是查询的结果。这个内存中的列表就是数据集。在你的程序里面Recordset就是表示这个数据集,如图就是我们虚拟的数据集

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

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

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


  说明:

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

 

  具体用法:

 

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

  表示:没有任何记录

 

你可能感兴趣的:(数据库)