转载-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
表示:没有任何记录
文章来源于:吴利昌 廊坊师范学院信息技术提高班 第九期
菜鸟的点滴成长
http://blog.csdn.net/wlccomeon/article/details/7867050
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类