开发者社区> codyl> 正文

学生管理系统调试——实时错误(实时错误“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

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

 

 

 

 

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
机房收费系统注册之实时错误
         机房收费系统,按着既定的脚步一步一步的往前走,窗体布局,实现代码,调代码,一不小心,写错一个单词,或者定义出了问题,都会导致程序无法正常运行下去,导致错误的原因有很多,但是导致同一个错误的原因却又不尽相同,无论怎样,自己还是在一个有一个的bug中找到闪光点,一点一点的向前进......,下面的这些错误时在注册的时候遇到的,做一个简单的总结。
712 0
小程序中的统计分析功能
小程序中的统计分析功能
57 0
Fundebug 微信小程 BUG 监控插件更新至 1.2.1,优化错误上报次数的限制算法
摘要: 1.2.1优化错误上报次数的限制算法,新增silentHttpHeader配置选项,请大家及时更新哈! Fundebug提供专业的微信小程序 BUG 监控服务,可以第一时间为您捕获生存环境中小程序的异常、错误或者 BUG,及时给开发者发送报警,帮助您快速修复 BUG。
1260 0
小程序评论怎么实时显示数据
小程序评论怎么实时显示数据
155 0
排查指南 | 两个案例学会从埋点排查 iOS 离线包
首次打开离线包白屏以及报错“-1009”等该如何处理呢?
342 0
[自制工具]批量后台更新统计信息
Oracle数据库有时需要批量收集数据库的统计信息,如在大量数据迁移或大量数据更新以后,但是收集的时间可能会较长,为了避免网络中断等意外情况可能引起的麻烦,今天调试了这个小脚本,可以分用户批量执行,同时记录执行时间等日志信息,比较实用。
83 0
一对一聊天平台源码,不同数据缺失处理方法的比较
一对一聊天平台源码,不同数据缺失处理方法的比较
15 0
+关注
codyl
make it possible
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
十分钟上线-使用函数计算构建支付宝小程序服务
立即下载
数据采集:日志数据上传
立即下载
基于日志trace的智能故障定位系统
立即下载