学生管理系统调试——实时错误(实时错误“3021)

简介:

                                                                   

         最近敲了一个小的练习项目——学生信息管理系统,在调试的过程了出现了一些问题。通过这些过问题又让我学习到了不少新的知识,今天我首先要记录的是”实时错误 ‘3021’“相信大多数人在初次使用VB链接数据库的过程中都会遇到这样的问题。怎么解决实时错误”3021“呢?那还是先让我们了解一下什么是EOF和BOF吧。

         使用ADO数据库进行查询的时候,将数据库查询结果返回查询端的时候,在查询端的内存中就会有一个列表,这个列表存放的就是查询的结果集。我们假设mrc是数据集,1、2、3、4为该数据集中的四个数据如下图:

                                                                 

        如图我们能很清楚的看到当mrc指向编号-1,这样就符合了BOF的情况;指向5(并不存在这条记录)的时候,这就是EOF的情况。如果同时出现BOF和EOF的情况,就是说指针既在上界之外也在下界之外,这就表示该数据集为空。

        出现这种错误的原因:1、我们查找的数据库记录为空;

                                            2、查找到数据后,用Del命令删除记录后,再引用Fields后出现错误;

                                            3、已经用MoveFirst或用MovePrevious命令移动数据库开始后再用MovePrevious命令;

                                            4、已经用MoveLast或用MoveNext命令移动至数据库最后位置后再用MoveNext命令。

        解决问题的方法:

        如果我们在查询的表中没有数据的话我们可以加上一个错误处理:

On Error resume next
mrc.MoveFirst
If Err=3021 then
    Response.Write"无数据!"
End If

         当我们删除最后一条记录的时候,引用Fields的过程中也会出现这样的问题,大家可以参考一下以下代码:

Private Sub cmdDelete_Click()
    Dim intMsgbox As Integer
    
    m_vntBookmark = m_rstCourseInfo.Bookmark           
    intMsgbox = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录")
    
    If intMsgbox = vbOK Then
        m_rstCourseInfo.MoveNext
        
        If m_rstCourseInfo.EOF = True Then
            m_rstCourseInfo.MovePrevious
            m_rstCourseInfo.MovePrevious
            
            If m_rstCourseInfo.BOF = True Then
                m_rstCourseInfo.MoveNext
                m_rstCourseInfo.Delete
                MsgBox "最后一条记录删除,记录为空!", vbOKOnly + vbExclamation, "警告"
                Unload Me
            Else
                m_rstCourseInfo.MoveFirst
                m_vntBookmark = m_rstCourseInfo.Bookmark
                m_rstCourseInfo.MoveLast
                m_rstCourseInfo.Delete
                m_rstCourseInfo.Bookmark = m_vntBookmark
                Call viewData
            End If
        Else
            m_vntBookmark = m_rstCourseInfo.Bookmark
            m_rstCourseInfo.MovePrevious
            m_rstCourseInfo.Delete
            m_rstCourseInfo.Bookmark = m_vntBookmark
            Call viewData
        End If
        
    Else
        m_rstCourseInfo.Bookmark = m_vntBookmark
        Call viewData
    End If
    
End Sub

         进一步的整理会在接下来的博客中陆续发布,希望大家能关注!

 

 

 

 

 

目录
相关文章
|
6月前
实际案例分析 - 根据应用程序日志的记录,反查出哪一行 ABAP 代码产生的这条日志试读版
实际案例分析 - 根据应用程序日志的记录,反查出哪一行 ABAP 代码产生的这条日志试读版
70 0
|
9月前
|
数据库
学生管理系统(2)——实时错误 ‘-2147217887
学生管理系统(2)——实时错误 ‘-2147217887
45 0
|
9月前
|
SQL 数据库连接 数据库
学生管理系统(1)——实时错误 ‘91
学生管理系统(1)——实时错误 ‘91
52 0
|
9月前
实时错误——381
在敲机房的过程中,我相信大家都有遇到了这种问题<下标越线>,乍一看也很蒙圈,查看附近的代码和控件没有发现错误出现在哪,进行调试之后蹦到了我的代码页面上
49 0
|
9月前
|
SQL 数据库连接 数据库
学生信息管理系统——实时错误“91”
学生信息管理系统——实时错误“91”
|
9月前
学生信息管理系统(3)——实时错误 ‘3021
学生信息管理系统(3)——实时错误 ‘3021
59 0
|
11月前
|
监控 前端开发 JavaScript
前端错误监控
前端监控是个很庞大丰富的内容,其包含页面UI监控,网络监控,性能监控,错误监控等内容,今天来简单谈谈前端错误监控。
|
存储 小程序 数据管理
小程序中的统计分析功能
小程序中的统计分析功能
小程序中的统计分析功能