日期:2014-05-16  浏览次数:20496 次

学生信息管理系统之------BOF、EOF大用处

        对于学生信息管理系统中对记录集的查看或者修改总会使用到EOF和BOF。

BOF和EOF 他们是记录集(recordset)对象的一种方法,BOF(before of file)是指记录集对象的指针指向第一个记录之前(不是第一条记录),EOF(end of  file)是指记录指针指向最后一个记录之后(不是最后一条记录)。使用这两个属性就可以使记录集浏览记录更加完善。看不明白文字的话,看图应该更懂!

                         

只有在上图中的情况下,BOF和EOF 他们才会 返回布尔值(True),否则返回(False),True为属性默认值。   

下面以学生信息管理系统具体事例说一下:

                      

        ①图中我们需要通过“第一条记录”“上一条记录”“下一条记录”“组、最后一条记录” 来显示数据库中的数据,数据库中的数据是有限的,当我们不停的点击上一条记录和下一条记录的时候肯定有到数据库表头和表尾的时候,这样系统肯定会出现错误。解决的办法就是使用BOF和EOF 。

        通过游标来显示上图中的班级信息,假设此数据为表中的第二条数据,当我们点一下"上一条记录"按钮时,它会执行一次mrc.moveprevious(注意:由于此时显示的记录不是表的第一条之前,更不是最后一条记录之后,所以在此,mrc.Bof=false、mrc.Eof=false),这样游标就移动到了第一条记录,并且将记录显示出来了。第二次点击"上一条记录"按钮,由于第一次点按钮的时候,表中已经显示了第一条记录了,再点的话,游标会移动到第一条记录之前(肯定是空记录,第一条之前嘛),此时记录集mrc.Bof =True,mrc.Eof=false,如果现在显示现在记录的话,系统肯定会出错误(因为它就没有上一条记录了,而且mrc.mvoeprevious也不可能移动了)

        为了解决这种方法,我们可以利用mrc.bof 和mrc.eof返回值的不同让记录集显示到最后一行记录,这样就可以避免出现错误。我们可以再其中加入这样的代码:

if mrc.bof=true and mrc.eof=false then  '如果mrc.bof  and mrc.eof=false 此时正好记录时第一条记录之前,我们可以

                                                                    让游标指向最后一条记录,让它形成一个循环往复下去。

             mrc.movelast

 

        ②当我们点一下“下一条记录”的时候,我们需要系统显示出下一条记录的信息,(假设表中三条记录,而上图中显示的是第二条)。当表显示出第三条记录的时候(即最后一条),在点一下此时会出现类似上面所说的系统错误(本来已将是最后一条了,没有办法在显示下一条记录),我们可以通过mrc.bof 和mrc.eof来让记录显示出第一条,一次循环。

if mrc.bof=false and mrc.eof=true then   '如果mrc.bof=false and mrc.eof=true此时记录正好是最后一条之后,我们  

                                                                     可以让游标指向第一条记录,让它循环下去。

             mrc.movelast

end if

 

        因为顺序显示记录肯定是单向的,所有当我们游标向上移动显示数据的时候,我们只需要判断mrc.bof 就可以;而当我们游标向下移动显示数据的时候,只需要判断mrc.eof就可以了。