刚刚在敲数据库例子的时候,遇到了一个错误:实时错误'3021' “BOF和EOF中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前记录”。其实这个错误也是之前敲数据库的代码时非常常见的一个错误,只不过当时看不大懂,然后再照着例子里面的代码纠正过来,然后就对了,以前也百度过,但看不大懂,只知道BOF跟“第一个”有关,EOF跟“最后一个”有关,而今晚通过一个小小的错误,我突然明白这其中的意思。

Private Sub previousCommand_Click()
    If mrc.BOF Then
        mrc.MoveLast

else

mrc.MovePrevious
    End If
    Call viewData
End Sub

Public Sub viewData()
    txtClassno.Text = mrc.Fields(0)
    comboGrade.Text = mrc.Fields(1)
    txtDirector.Text = mrc.Fields(2)
    txtClassroom.Text = mrc.Fields(3)
   
End Sub

一开始我没看例子敲,就按着自己想的去敲,上面的代码中command过程是错误的,viewdata()是正确的,运行后当我单击按钮,错误的那个黄条是在viewdata()的第一行,然后我退出看了看正确的代码:

Private Sub previousCommand_Click()
    mrc.MovePrevious
    If mrc.BOF Then
        mrc.MoveLast
    End If
    Call viewData
End Sub

我便突然明白了BOF的意思,其实BOF是指向表中的第一行的空白行,尽管表中第一行没有空白的,但是你可以主观认为它存在一个你看不到的第一行,并且是空白的,因为程序一开始运行的时候记录是在第一条,当moveprevious之后就成为了BOF,即指向了第一行空白区域,程序运行到了viewdata()的第一行时mrc.Fields(0)里面什么都没有,所以赋值的时候报错了,确实错误中描述的很对“BOF或EOF中有一个是“真””,而同样的可以把EOF看做是指向了最后一行数据的下一行-空白行,如果这个时候你还赋值,那可定会报错,因为这是空的,什么都没有。所以对BOF和EOF的处理是:当发生这两个事件的时候,可以把当前记录转移到一个飞空区域,然后赋值或者干别的,就不会出现那样的错误了。看,上面正确的代码里,即将发生BOF事件后第一时间将当前记录转移到最后一条数据区域即可避免错误的发生。

又是一个夜晚,感觉少了很多东西,推开窗户,原来那一直有棵树,但却不见那风儿,一直以为自己触摸到了很多东西,殊不知已经错过了太多美丽。打开心门的那扇窗,让每个夜晚都不会寂寞,昨天晚上的梦,今晚只想说:待续。躺也!躺也!

EOF和BOF的理解相关推荐

  1. VB中EOF和BOF

    学生管理系统中的EOF和BOF是什么意思呢?分享一点小知识.   含义 返回值型 作用 BOF 当前记录位置位于Recordest对象的第一个记录之前 布尔型 确定Recordest对象是否包含记录, ...

  2. EOF和BOF是什么意思

    EOF和.BOF是什么意思 BOF 指示当前记录位置位于 Recordset 对象的第一个记录之前. EOF 指示当前记录位置位于 Recordset 对象的最后一个记录之后. 当RecordCoun ...

  3. EOF 与 BOF 之分

    使用ADO连接数据库进行查询的时候,数据库将查询结果返回查询端,在查询端的内存里面就会有一个列表,这个列表存放的就是查询的结果.这个内存中的列表就是记录集. EOF(end of file)--记录当 ...

  4. 红皮书--EOF与BOF

    实例1              BOF:指当前记录位置位于Recordset对象的第一个记录之前       EOF:指当前记录位置位于Recordset对象的最后一个记录之后     这两个的属性 ...

  5. VB中 EOF 和 BOF 的区别

    定义 BOF:指当前记录位置位于Recordset对象的第一个记录之前: EOF:指当前记录位置位于Recordset对象的最后一个记录之后. 这两个的属性值均返回布尔型:True和False,使用B ...

  6. 学生信息管理系统错误总结之3021

    在这些天敲写和调试学生信息管理系统的时候,经常会用到EOF(End of File)和BOF(Before of File),稍加不注意查询我们的数据库就会出错,那么这两个究竟是个什么鬼? 一.认识 ...

  7. c语言中关于文件读取结束的判定,以及feof函数的理解

    判断一个文件的读取是否结束,很多人,会想到用feof函数来判定,的确需要用到这个函数,但是仅仅靠这个函数是不够的. 错误用法: #include<stdio.h>int main() {F ...

  8. 在连接中的EOF意味着什么?

    2019独角兽企业重金招聘Python工程师标准>>> EOF的概念常常使人感到迷惑,尤其是在因特网连接上下文中.首先我们需要理解其实并没有像EOF字符这样的一个东西.进一步说, E ...

  9. 【VB】学生信息管理系统6——错误调试

    因为站在了巨人的肩膀上,在理解代码意思后的调试中,用到之前的别人的CSDN.所以原理查的不是很透彻.这里总结一下我的问题! 1.VB(如下代码)中mrc.EOF = False应该怎么理解呢? Set ...

最新文章

  1. python keyboard模块_python3 安装 pykeyboard 模拟浏览器
  2. 元宇宙大潮来袭?业内首个虚拟形象实时互动融合 SDK 来了!
  3. hadoop的安装与配置(伪分布式模式安装)
  4. vue开发小程序Demo
  5. ZOJ 3635 Cinema in Akiba[ 大规模阵列 ]
  6. ios整理(六)关于用富文本在tableview的cell去加载html字符串的优化方案
  7. 自动基线校正 python_安全运维中基线检查的自动化之ansible工具巧用
  8. Linux下将你的程序打包成run文件
  9. AT89C51/AT89S51/STC89C51单片机烧录程序的区别
  10. 吴昂雄回应Arm中国控制权争夺:Arm罢免我无效
  11. 10个WEB设计戒律 和 10个设计师戒律
  12. 北大pkuseg分词 和 jieba 分词对比测试,结果出乎意料...
  13. 怎样修改edge默认浏览器
  14. 品牌公寓+电子合同,开拓年轻人租房市场
  15. CSS 网页定位与布局
  16. ubuntu 16.04 开机开启小键盘数字键
  17. 内嵌模式搭建Hive
  18. 等保2.0参与医院网络安全管理的重要性
  19. 4.4 使用倾斜工具和整形工具制作图标 [Illustrator CC教程]
  20. 从 Eligibility 浅谈英中翻译消除歧义的重要性

热门文章

  1. 物联网系统设计工具箱——Dashboard框架Dashing
  2. android studio 2021版本下载安装详细教程(超详细)2022,一步步教你
  3. 对于MUI的实现原理以及遮罩蒙版和numbox以及侧滑导航的事件监听的运用和实战
  4. 安装 ubuntu 系统各分区参考大小
  5. springBoot打war包后,启动时导入外部配置文件
  6. 在中国,千万别一辈子靠技术生存 !
  7. Java_IO——字符流
  8. android 停止服务方法,android-如何自行停止服务?
  9. 华为交换机MAC地址表以及命令配置
  10. Linux 中的防火墙