深入浅出理解 BOF和EOF

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

             在做学生管理的过程中,多次运用BOF和EOF,使文章的逻辑更加的鲜明,刚开始理解不是很到位、有点小偏差,随着大家的交流与学习,逐渐加强了对其的认识,接下来大家共同学习!

 

 

解释说明:

       ADO Recordset 对象用于容纳一个来自数据库表的记录集。一个 Recordset 对象由记录和列(字段)组成。

      在 ADO 中,此对象是最重要且最常用于对数据库的数据进行操作的对象。

 

 

      BOF (Before of File)指示当前记录位置位于 Recordset 对象的第一个记录之前。

Private Sub previousCommand_Click()
On Error GoTo P_Err
'错误语句


  mrc.MovePrevious
  If mrc.BOF Then            '如果当前记录位于第一个记录,则移向最后一个记录
    mrc.MoveLast
  End If
   Call viewData
P_EXIT:
    Exit Sub

P_Err:
    MsgBox "无任何记录!", vbOKOnly + vbCritical, "警告"    '验证无法正常完成
    GoTo P_EXIT
End Sub




      EOF(End of File) 指示当前记录位置位于 Recordset 对象的最后一个记录之后。


 

Private Sub deleteCommand_Click()
    On Error GoTo P_Err

    myBookmark = mrc.Bookmark '标记
    Str2$ = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录")
    If Str2$ = vbOK Then                                    '首先是先测试是否要删除的记录为最后一条记录
        mrc.MoveNext                                     '如果为最后,则先把当前记录移动到第一个
        If mrc.EOF Then

            mrc.MoveFirst                                    '书签移动到第一个

            mybookmarl = mrc.Bookmark
            mrc.MoveLast                                      '然后在移动到最后

            mrc.Delete                                        '删除

            mrc.Bookmark = myBookmark                         '找到刚才的书签
            Call viewData
        Else
            myBookmark = mrc.Bookmark                         '标记如果不是最后一个

            mrc.MovePrevious                                  '标记下一个,因为删除以后就要移动到下一个

            mrc.Delete                                        '删除

            mrc.Bookmark = myBookmark                         ' 找回刚才标记的书签

            Call viewData
        End If                                                '显示记录

    Else
        mrc.Bookmark = myBookmark                                '取消标记
        Call viewData
    End If
P_EXIT:
    Exit Sub

P_Err:
    txtName.Text = ""
    txtBorndate.Text = ""
    txtSID.Text = ""
    txtRudate.Text = ""
    txtTel.Text = ""
    txtAddress.Text = ""
    txtComment.Text = ""

    MsgBox "无任何记录!", vbOKOnly + vbCritical, "警告"    '验证无法正常完成

    GoTo P_EXIT
End Sub




 

返回值:BOF 和 EOF 属性返回布尔型值。

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

 

 

以下表格说明不同 BOF 和 EOF 属性组合所允许的 Move 方法。

MoveFirst,
MoveLast
MovePrevious,
Move < 0

Move 0
MoveNext,
Move > 0
BOF=True,
EOF=False
允许错误错误允许
BOF=False,
EOF=True
允许允许错误错误
同时为 True错误错误错误错误
同时为 False允许允许允许允许

允许使用 Move 方法并不能保证该方法成功定位记录,只是意味着调用指定的 Move 方法不会产生错误。

下表说明当调用各种 Move 方法但未成功定位记录时 BOF 和 EOF 属性设置所发生的情况。

BOFEOF
MoveFirst, MoveLast设置为 True设置为 True
Move 0没有变化没有变化
MovePrevious, Move < 0设置为 True没有变化
MoveNext, Move > 0没有变化设置为 True

 

fft 相位谱_LabVIEW实例,如何编程实现一个虚拟FFT分析仪 LabVIEW又称为G语言,简单易学、形象直观,采用图形化的编程方式,是专为测试、测量控制应用而设计的系统工程软件。因此,LabVIEW软件在数据仿真、信号分析处理方面有着得天独厚的优势。本文以一个具体实例,演示在LabVIEW中如何实现一个虚拟的FFT分析仪设计,包括采样信号的仿真、频域的FFT分析及数据结果的图形显示等功能。这个例子也刚好对应了一个虚拟仪器所具有的三个基本组成环节的实现,即在... 阅读详情

相关推荐

3D DEMO作品集

DEMOSTRATION作品集锦............. 体积最小的3D动画

3D动画(CSS3)-animation

3D动画(CSS3)-animation 动画是CSS3中具有颠覆性的特征之一,可通过设置多个节点来精确控制一个或一组动画,常用来实现复杂的动画效果; 通过CSS3,我们能够创建动画,这可以在许多页面中取代 动画图片、Flash动画以及JavaScript。 第一种叫过渡(transition)动画,就是从初始状态过渡 到结束状态这个过程中所产生的动画。所谓的状态就是指 大小、位置、颜色、变形(...

Liyunhao_haoge的博客 5万+

BOFEOF大揭秘

最近在进行学生信息管理系统项目的学习,其中BOFEOF出镜率很高,于是决定写一篇博客来帮助更多人! 如上图,BOF(before of file)为记录集对象的指针指向第一条记录之前(不是第一条记录),而EOF(end of file)为记录集对象的指针指向最后一条记录之后(也不...

Nikita 758

鸡腿の游戏

题目描述: 给出一个无向图,求图中每个点是多少对点对的必经点。 输入格式: 第一行输入两个正整数n,m,含义同题目描述。 接下来m行,每行两个整数a,b表示a,b两个通讯基站能够直接通讯。 输出格式: 输出n行,每行一个整数,第i行表示通讯基站i是多少对不同的通讯基站的必经点。 样例输入: 7 9 1 2 1 3 1 4 1 5 1 6 1 7

Unknown 1万+

ef - the latter tale 汉化版出了!(含汉化补丁、游戏本体、攻略)

ef - the latter tale.介绍注:本文为绯月原创组ゆちゃん作品,引自如下链接:http://snow.2dgal.com/g_intro.php?id=11  童话故事并不是一个。继人气作品『はるのあしおと』之后,minori挑战互动小说最新作『ef - a fairy tale of the two.』。全6章二部形式的故事

大师的资源 2万+

从系统登录到数据查询

第一遍做完五个实例的时候有茫然的感觉,可能刚开始接触数据库,很多陌生的概念,违背了"吃饭理论",于是差点丧失了学习的动力.        反反复复看了好几天,研究了好几遍,终于有些理解了,今天开会总结完,我重新学习了一些概念,比如ADO等.又把五个实例的主要知识点关系整理如下: 实例一 系统登录 通过查询保存系统用户登录信息的数据表完成验证 使用输入的用户名查询数据表中的

Hannah 1733

SQL注入漏洞全接触--入门篇

SQL注入漏洞全接触--入门篇 博客分类:SQL注入 SQLASPIIS应用服务器IE 随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想...

iteye_7130的博客 279

ASP 学习笔记整理

在看高手写的asp代码中看到asp代码用with来表示对象,其asp结构形式 with …End with. 代码如下: &lt;% sql = “select * from table” set rs = server.createObject(“adodb.recordset”) with rs .open sql,foraspcn,1,1 if .eof or .bof the...

fushaoping2008的博客 619

私、仆、俺 あなた、お前、君 的区别

  私 わたくし watakushi 对比自己辈分或地位高的人使用,敬语。男女通用。 私 わたし watashi 相对“わたくし”而言更随便柔软一些的说法,敬语。虽是男女通用,但是女性使用较多。 あたし atashi 由“わたし”的发音变化而来,相对“わたし”而言更随便柔软的说法,基本上为女性用语。 仆 ぼく boku (“仆”为繁体字) 在相对正式的场合,对自己比较亲密的平辈或后辈使用

专栏 1万+

汉化补丁索引

完工的:  盛夏之梦A Dream of Summer 汉化发布[PC+PSP版]もしも明日が晴れならば—0.91汉化补丁: 空白页中右键编码——》选择utf-8即可进入MU,火狐浏览器没有这个问题http://www.megaupload.com/?d=5UYLP17A 3D劲舞游戏 Dance Mixer 简体中文汉化版+常见问题我的狐仙老婆——游魂

大师的资源 3万+

BOFEOF的详细解释

使用ADO连接数据库进行查询的时候,数据库将查询结果返回查询端, 在查询端的内存里面就会有一个列表,这个列表存放的就是查询的结果。 这个内存中的列表就是数据集。在你的程序里面rs就是表示这个数据集。 BOF: bof表示rs当前的指针是指在了数据集的前面,比如数据集里面有编号为1,2,3,4的4条记录,但是rs指向的编号是-1,这样就会符合了bof的情况。 EOF: 同理,当rs的指针指向...

见贤思齐 2816

BOFEOF

在学生信息管理系统中有多处用到EOFBOF,使用BOFEOF属性可确定Recordset对象是否包含记录,或者从一个记录移动到另一个记录是否超出Recordset对象的限制。 BOFEOF他们是recordset对象的一种方法,BOF是指记录集对象的指针指向第一个记录之前,EOF是指记录指针指向最后一个记录之后。 说明: (1)如果当前记录位于第一个记录之前,BOF属性将返回True(-1),如果当前记录为第一个记录或位于其后则将返回False(0)。 (2)如果当前记录位于Recordset对.

一条游向寒江的鱼 867

浅谈 EOF,BOF

记录集:在数据库查询的时候,数据库将查询到的结果生成一个列表,这个列表就是记录集,记录集中会存放结果的多条记录。 BOF:指示当前记录位置位于recordset记录集的第一条记录之前 EOF:指示当前记录位于recordset记录集的最后一条记录之后 图形演示: 使用eof bof对象可以确定该条记录在记录集中的位置,以及确定当前记录是否为空,或者当我们

努力发光呀 1942

搞汉化以来的一件后悔的事

一件后悔的事。。。

大师的资源 9848

道楽勇者バトルアドベンチャー 剧情汉化补丁发布

【游戏名称】:道楽勇者バトルアドベンチャー【游戏厂商】:デジタルミメーシス【游戏大小】:1.1G【发售日期】:2009年04月24日【汉化类型】:剧情汉化【游戏介绍】:请自己baidu游戏提示:1、道楽勇者バトルアドベンチャー是 道楽勇者续篇2、由于时间精力 人力 我先制作 剧情汉化H部分战斗部分可能会在后续进行汉化......汉化:

大师的资源 1万+

【学生管理系统】EOFBOF

这个错误提示,相信大家都在

Summer 1449
上一篇: 运筹帷幄之中决胜千里之外 菜鸟初识代码编程规范二 命名规范
下一篇: 机房收费系统(DBMS)需求分析图
IT架构体系
IT架构体系 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄15年 1870粉丝 232原创
评论 77
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值