VB資料庫中EOF和BOF的認識與用法

來源:互聯網
上載者:User

      在這些天敲寫和調試學生資訊管理系統的時候,經常會用到EOF(Endof File)和BOF(Before of File),稍加不注意查詢我們的資料庫就會出錯,那麼這倆到底是何方神聖,是怎麼用的,之間又有什麼區別呢? 

一、認識

      BOF:指目前記錄位置位於Recordset對象的第一個記錄之前

      EOF:指目前記錄位置位於Recordset對象的最後一個記錄之後 

   這兩個的屬性值均返回布爾型:True和False,使用BOF
和 EOF 屬性可確定 Recordset 對象是否包含記錄,或者從一個記錄移動到另一個記錄時是否超出 Recordset 對象的限制。 下表即是各自的使用說明及查詢結果: 

 

EOF

BOF

True

當前行的位置是在最後一行的後面,無記錄

當前行的位置是在第一行之前,無記錄

False

當前行的位置是在最後一行或其前面,有記錄

當前位置是在第一行或其後,有記錄

 說明:

(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,直到重新安排目前記錄。


    而在我們的學生資訊管理系統中,會涉及到對指標進行的MoveFirst、MoveLast、MovePrevious與MoveNext四種方法。一般來說,當需要對記錄集Recordset中的所有行進行操作時,代碼可以使用MoveNext,迴圈遍曆各行,直到EOF屬性被置為True

如果當 EOF 被置為 True 時再使用 MoveNext ,或當 BOF被置為 True 時再使用 MovePrevious ,都將產生一個提示代號為‘3021’的錯誤。

    需要注意的是:允許一個Move 方法並非意味著,該方法能成功地定位某行。它僅表示執行這個指定的 Move 方法是允許的,並且不產生一個錯誤。 BOF 和 EOF屬性的狀態可以隨著該移動的結果而改變。 

二、用法

    If objRs.BOF Then

    表示:當前指標的位置是在第一行記錄之前,則...

    If objRs.EOF Then

    表示:當前指標的位置是在最後一行記錄之後,則...

    If Not objRs.EOF Then

    表示:當前指標的位置沒有到達最後一條記錄

    If Not objRs.BOF then

    表示:當前指標的位置沒有到達第一條記錄

    推薦使用下面兩條

    If Not (objRs.BOF AND objRs.EOF) Then

    表示:指標位於RecordSet 的當中(並非是最後一條和第一條) ,說明一定有記錄。

    If objRs.BOF AND objRs.EOF Then

    表示:沒有任何記錄

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.