VB数据库中EOF和BOF的认识与用法
一、認識
? ? ? 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
? ? 表示:沒有任何記錄
總結
以上是生活随笔為你收集整理的VB数据库中EOF和BOF的认识与用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL命令大全-中英文对照
- 下一篇: JavaScript的一些常用方法