`
xiaoheliushuiya
  • 浏览: 433933 次
文章分类
社区版块
存档分类
最新评论

关于BOF和 EOF

 
阅读更多

浏览RecordSet中的记录需要两步:1.定位当前的记录,RecordSet打开的第一个记录为当前记录;2.用Field对象获得当前记录的各个数据列。

RecordSet对象可用下列5种方法定位到当前记录:


MoveFirst:使当前指针指向第一个记录;

MoveNext:使当前指针指向下一个记录;

MovePrevious:使记录指针指向前一个记录;

MoveLast:使记录指针指向最后一个记录;

Move n:使记录指针指向当前记录算起的第n个记录。


RecordSet的两个属性:

Bof——before of file

Eofend of file


以上两个属性返回布尔型:


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


这两个属性和记录定位方法结合即可浏览recordset中的所有记录:



MoveFirst&
MoveLast
MovePrevious,
move<0
move 0 MoveNext,
move>0
bof=true & eof=false 允许 错误 错误 允许
bof=false & eof=true 允许 允许 错误 错误
同时为true 错误 错误 错误 错误
同时为false 允许 允许 允许 允许


1.If objRs.BOF Then

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

2.If objRs.EOF Then

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

3.If Not objRs.EOF Then

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

4.If Not objRs.BOF then

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

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

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

6.If objRs.BOF AND objRs.EOF Then

表示:没有任何记录


当Bof或Eof中有一个是“真”,或者当前的记录已被删除的情况下,会产生实时错误3021,在学生信息管理系统中,我们应该都遇到这个问题,下面分享一下我解决这个问题的方法。
Private Sub Form_Activate()    '改进form-load事件,在窗体未显示之前,判断有无记录,
                               '若无记录则修改窗体的功能不能执行,没必要显示,跳转到添加信息
     Dim txtSQL As String
     Dim msgtext As String
     Dim msgvalue As Integer
    
     txtClassno.Enabled = False
     comboGrade.Enabled = False
     txtDirector.Enabled = False
     txtClassroom.Enabled = False
    
     txtSQL = "select * from class_Info "
     Set mrc = ExecuteSQL(txtSQL, msgtext)
    
      If mrc.EOF And mrc.BOF Then         '无记录时mrc.EOF=true和mrc.BOF=true同时满足
          
          msgvalue = MsgBox("当前无记录!您是否添加班级信息?", 4 + 32 + 256, "温馨提示")

          If msgvalue = 6 Then   '选择是,直接跳转到添加信息
              Unload frmModifyclassinfo
              Load frmAddclassinfo
              frmAddclassinfo.Show
          Else                   '选择否,因为没有记录,不必显示修改窗口
               Unload frmModifyclassinfo
          End If
     Else                        '有记录的情况,显示第一条记录
          mrc.MoveFirst
          Call viewData
          myBookmark = mrc.Bookmark
          mcclean = True
     End If
End Sub





  


  
分享到:
评论

相关推荐

    asp.net BOF或EOF有一个是真,或者当前记录已被删除

    BOF和EOF是ADO(ActiveX Data Objects)中的两个关键概念,它们用于指示记录集的位置。BOF表示记录集的起始位置,而EOF表示记录集的末尾。当你试图在没有数据的记录集上移动,或者试图访问已经被删除的记录时,系统...

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

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

    关于ASP eof与bof 区别分析

    在ASP(Active Server Pages)编程中,我们经常会遇到处理数据记录集Recordset的情况,而`EOF`和`BOF`是两个非常关键的概念,用于在循环遍历数据时判断是否到达了记录集的边界。接下来,我们将深入探讨这两个概念及其...

    用友T3/T6打补丁后提示“本地版本高于服务器版本”解决工具(解决了报EOF或BOF错误)

    解决T3/T6打最新增量补丁后,提示本地版本...1、解决了使用工具报EOF或BOF错误的问题 2、使用工具后,如果还不行,请尝试重启电脑 3、重启还不行,看一下是不是360之类的软件把update.exe给隔离了 更新日期:2013-7-25

    本地版本高于服务器版本解决工具.exe

    2013-7-25更新: 1、解决了使用工具报EOF或BOF错误的问题 2、使用工具后,如果还不行,请尝试重启电脑 3、重启还不行,看一下是不是360之类的软件把update.exe给隔离了

    百一测评——深入进行数据库编程.docx

    4. Bof和Eof属性:`BOF`(Before First)和`EOF`(End Of File)是Recordset对象的两个重要属性,分别表示记录指针是否位于记录集的第一条之前和最后一条之后。如果记录集为空,`BOF`和`EOF`都将为`True`,如问题4所...

    AbsolutePosition 与move的用法

    - **状态检查:**结合Bookmark、BOF和EOF属性,可以判断当前记录的位置状态。例如,如果AbsolutePosition等于1且BOF为True,表明当前记录位于记录集的最前端;若AbsolutePosition等于记录集总记录数且EOF为True,则...

    visual basic记录集

    空记录集的BOF和EOF都是True,可用于判断记录集是否为空。 3. **AbsolutePosition**: 返回当前记录的索引位置,即当前记录是记录集中的第几条。这是一个只读属性。 4. **Bookmark**: 用于设置或获取当前记录的书签...

    燃料电池电动汽车 加氢通信协议

    2. **数据链路层**:控制字符如XBOF、BOF、EOF和CE被定义以标记帧的开始和结束。数据传输中,采用CRC-16校验码进行帧校验,以检测和纠正传输错误。数据链路帧由XBOF字符开头,以EOF字符结束,包含数据和FCS字段。...

    Visual Basic数据库编程

    Move方法用于在记录集中移动,BOF和EOF属性检测是否到达记录集的开始或结束,RecordCount属性返回记录数量。此外,还要注意ADODC控件的相关事件,如当数据发生变化时触发的事件,以便进行相应的处理。 总的来说,...

    3.3 在ASP中使用Oracle数据库.doc

    OraDynaset对象则用于存储和操作数据库中的数据,它具有多种属性(如BOF、EOF、Bookmark)和方法(如AddNew、Update、Delete、Edit、Refresh、Clone)。 为了在ASP中处理Oracle数据库的数据,首先要搭建合适的环境...

    ADO三大对象的属性、方法、事件及常数.

    - 属性:Fields提供对记录集中的字段的访问,BOF和EOF分别表示是否位于首记录和尾记录,RecordCount表示记录数,CursorLocation定义游标的位置。 - 方法:MoveFirst、MoveLast、MoveNext、MovePrevious用于移动...

    经典的ADO CHM参考手册

    3. Recordset对象:详述Recordset的各种属性(如Fields、Status、BOF、EOF等)、方法(如MoveFirst、MoveNext、Update、CancelUpdate等)以及状态,如何遍历Recordset,处理游标移动和数据操作。 4. 错误处理:介绍...

    09-ExcelVBA学习总结-通用ADO数据访问模型[参照].pdf

    Recordset对象代表查询结果,其属性如BOF和EOF分别表示是否到达记录集首尾,CursorLocation定义游标位置,Filter和Sort用于过滤和排序记录,Fields属性包含了列的信息。通过遍历Recordset的Fields和RecordCount,...

    ADO连接数据库.rar

    4. **记录集操作**:详细介绍Recordset对象的各种属性(如BOF、EOF、Fields)和方法(如MoveFirst、MoveNext),以及如何遍历和修改记录。 5. **错误处理**:讨论如何使用Error对象和Try-Catch结构来捕获和处理ADO...

    Delphi 判断ADO是否为保存状态.rar

    1. **BOF** 和 **EOF**:这两个属性分别表示记录指针是否在记录集的开头(Before First)和结尾(After Last)。如果记录集没有修改,它们应该保持不变。如果用户在记录集中进行了导航,而未调用Update,那么BOF和...

Global site tag (gtag.js) - Google Analytics