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

关于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有一个是真,或当前记录已被删除的错误

    关于ASP eof与bof 区别分析

    ------------------------- ###推荐使用下面两条 if not (rs.bof and rs.eof) then 表示:指针位于 RecordSet 的当中(并非是最后一条和第一条) ,说明一定有记录。 if rs.bof and rs....

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

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

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

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

    VB 使用DAO对象浏览数据库.rar

     If rst.EOF Or rst.BOF Then  Exit Sub  End If  For i = 0 To 4  If IsNull(rst.Fields(i)) Then '判断是否有空值  Text1(i).Text = ""  Else  Text1(i).Text = rst.Fields(i).Value '为控件数组赋值  ...

    MFC学习之SQL数据库操作类

    #import "C:\\Program Files\\Common Files\\System\\ado\\msado15.dll" named_guids rename("EOF","adoEOF"), rename("BOF","adoBOF") #pragma warning(default:4146) using namespace ADODB; class CAdoLx { _...

    好用的zencart 批发插件

    安装步骤如下: 1.压缩文件包,将文件里边的YOUR_TEMPLATE...--eof Add to Cart Box--&gt;就行.弄好这个文件之后,把includes下的其它文件都上传好。 3.进入前台,进入属性管理,你可以看到多了一个属性Grid了,选择即可

    asp的分页制作的代码

    if rs.eof and rs.bof then%&gt; &lt;div align="center" class="001"&gt;&lt;br&gt; 对不起,没有符合搜索条件的记录! 2.显示记录块 else rs.AbsolutePage=pagecount do while not rs.eof %&gt; 显示的记录 rs.movenext if i...

    C++连接SQL数据库分步骤进行

    C++连接SQL数据库分步骤进行 1.设置SQLSERVER服务器为SQL登录方式,并且系统安全性中的sa用户要设置登录功能为“启用”,还有必须要有密码。...no_namespace rename(”EOF”, “adoEOF”) rename(”BOF”, “adoBOF”)

    数据库系统及应用 邓洪涛 第七章表和索引 课件

    都是自己做的 照抄一些: 重点、难点: ⑴ 打开表命令USE,并能判断一个表是否打开;...RECNO()、BOF()、EOF())检测表中记录; ⑶ 修改记录命令REPLACE; ⑷ 怎样在实例中灵活运用这些命令和函数。

    C++封装ADO数据库连接,附上DLL源码和测试程序

    因工作需要,一些项目中频繁...#import "C:\Program Files\Common Files\System\ADO\msado15.dll" named_guids rename("EOF","adoEOF"), rename("BOF","adoBOF") #pragma warning(default:4146) using namespace ADODB;

    UIB V1.2f

    UIB v1.2f maintenance update.TJvUIBQuery &gt; Corrected Eof property when prior is called.TJvUIBQuery &gt; Added Bof property.TJvUIBDataSet &gt; Corrected Refresh method.

    站长工具ASP源码下载.rar

    网站信息网 ... =======================================================================...程序的修改只需要更改版头bof.asp与版末eof.asp两个文件即可使用. 演示地址为:www.webicp.cn/tool 源码感谢80diy.com 海宇

    MFC用ADO连接ACESS数据库实例

    rename("EOF","adoEOF")rename("BOF","adoBOF") 2、在DataAdo.cpp文件BOOL CDataAdoApp::InitInstance()函数中加入代码 ::CoInitialize(NULL);//com初始化 ::CoUninitialize(); //放在InitInstance()函数最后...

    vb精彩编程200例,好东西大家一起分享!

    If myrs.EOF = False Then myrs.MoveLast If myrs.BOF = False Then myrs.MoveFirst For i = 0 To myrs.RecordCount - 1 master.AddItem (myrs.Fields(0)) myrs.MoveNext Next i If master.ListCount &gt; 0 ...

    zencart rss插件

    --bof RSS Feed --&gt; &lt;div id="RSSFeedLink"&gt;&lt;?php echo rss_feed_link(RSS_ICON); ?&gt; &lt;!--eof RSS Feed --&gt; —————————————————- 请访问zencart 外贸自由行中文论坛获取更多资料 ...

    数据库应用系统.pdf

    在 Visual FoxPro 中,关于查询和视图的正确描述是 A、查询是一个预先定义好的 SQL SELECT 语句文件 B、视图是一个预先定义好的 SQL SELECT 语句文件 C、查询和视图是同一种文件,只是名称不同 D、查询和视图都是一...

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

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

Global site tag (gtag.js) - Google Analytics