天天看點

學生管理系統調試——實時錯誤(實時錯誤“3021)

學生管理系統調試——實時錯誤(實時錯誤“3021)

         最近敲了一個小的練習項目——學生資訊管理系統,在調試的過程了出現了一些問題。通過這些過問題又讓我學習到了不少新的知識,今天我首先要記錄的是”實時錯誤 ‘3021’“相信大多數人在初次使用vb連結資料庫的過程中都會遇到這樣的問題。怎麼解決實時錯誤”3021“呢?那還是先讓我們了解一下什麼是eof和bof吧。

         使用ado資料庫進行查詢的時候,将資料庫查詢結果傳回查詢端的時候,在查詢端的記憶體中就會有一個清單,這個清單存放的就是查詢的結果集。我們假設mrc是資料集,1、2、3、4為該資料集中的四個資料如下圖:

學生管理系統調試——實時錯誤(實時錯誤“3021)

        如圖我們能很清楚的看到當mrc指向編号-1,這樣就符合了bof的情況;指向5(并不存在這條記錄)的時候,這就是eof的情況。如果同時出現bof和eof的情況,就是說指針既在上界之外也在下界之外,這就表示該資料集為空。

        出現這種錯誤的原因:1、我們查找的資料庫記錄為空;

                                            2、查找到資料後,用del指令删除記錄後,再引用fields後出現錯誤;

                                            3、已經用movefirst或用moveprevious指令移動資料庫開始後再用moveprevious指令;

                                            4、已經用movelast或用movenext指令移動至資料庫最後位置後再用movenext指令。

        解決問題的方法:

        如果我們在查詢的表中沒有資料的話我們可以加上一個錯誤處理:

         當我們删除最後一條記錄的時候,引用fields的過程中也會出現這樣的問題,大家可以參考一下以下代碼:

         進一步的整理會在接下來的部落格中陸續釋出,希望大家能關注!