日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

EOF和BOF

發布時間:2025/3/20 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EOF和BOF 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

EOF和BOF


? ? ? ? ?使用ADO連接數據庫進行查詢的時候,數據庫將查詢結果返回查詢端,在查詢端的內存里面就會有一個列表,這個列表存放的就是查詢的結果。

? ? ? ? ?這個內存中的列表就是數據集。在學生的程序里面mrc就是表示這個數據集。

? ? ? ? ?Dim mrc As ADODB.Recordset

? ? ? ? ?比如

? ? ? ? ?數據集里面有編號為1,2,3,4的4條記錄。

? ? ? ? ?BOF表示當前的指針是指在了數據集的前面,當mrc指向的編號是-1,這樣就會符合了bof的情況。

? ? ? ? ?EOF表示當前的指針是指在了數據集的后面,當mrc的指針指向5,而第五條記錄并不存在,這樣就會產生了eof的情況。

? ? ? ? ?如果同時產生了BOF和EOF的情況,就是說mrc的指針既在上界之外也在下屆之外,這樣只有一種情況,就是mrc所代表的數據集是空的。

? ? ? ? ?我們在做信管和機房的時候,經常會遇到的一個錯誤,如下圖sql語句查詢出來的值是空的,因此數據集也是空的,在讀取rs數據集里面的值的時候就會報這個錯誤。


? ? ? ? ? 使用?if?rs.BOF and?rs.EOF then?這個判斷可以判別mrc里面是否有沒有數據集,如果符合這個條件,說明數據集是空的,在程序中就要繞開對mrc里字段的訪問。?

判斷記錄集是否為空:

If mrc.EOF And mrc.BOF Then

??? MsgBox"對不起,您要查詢的記錄集為空!",vbOKOnly + vbExclamation, "提示"

??? …………

Else

??? x =Trim(mrc.Fields(n))

??? …………

End If

上述的代碼,近似程序:If?mrc.Recordcount?=?0?then

? ? ? ? ?BOF、EOF?屬性??

? ? ? ? ?BOF?指示當前記錄位置位于?Recordset?對象的第一個記錄之前。???

? ? ? ? ?EOF?指示當前記錄位置位于?Recordset?對象的最后一個記錄之后???

? ? ? ? ?BOF、EOF返回值???

? ? ? ? ?BOF?和?EOF?屬性返回布爾型值,說明如下: ??

? ? ? ? 使用?BOF?和?EOF?屬性可確定?Recordset?對象是否包含記錄,或者從一個記錄移動到另一個記錄時是否超出?Recordset?對象的限制。???

? ? ? ? 如果當前記錄位于第一個記錄之前,BOF?屬性將返回?True?(-1),如果當前記錄為第一個記錄或位于其后則將返回?False?(0)。???

? ? ? ? 如果當前記錄位于?Recordset?對象的最后一個記錄之后?EOF?屬性將返回?True,而當前記錄為?Recordset?對象的最后一個記錄或位于其前,則將返回?False。???

如果?BOF?或?EOF?屬性都為?True,則表示當前沒有任何記錄。

第一條和最后一條記錄查詢:

Private Sub firstCommand_Click()

???mrc.MoveFirst

??? CallviewData

End Sub

Private Sub lastCommand_Click()

??? mrc.MoveLast

??? CallviewData

End Sub

上一條和下一條記錄查詢:

Private Sub previousCommand_Click()

???mrc.MovePrevious

??? If mrc.BOFThen

???????mrc.MoveLast

??? End If

??? CallviewData

End Sub

Private Sub nextCommand_Click()

??? mrc.MoveNext

??? If mrc.EOFThen

???????mrc.MoveFirst

??? End If

??? CallviewData

End Sub

? ? ? ? ? 如果記錄集位于第一條記錄之前,即BOF則,記錄集移動到最后一條記錄。

? ? ? ? ? 如果記錄集位于最后一條記錄之后,即EOF則,記錄集移動到第一條記錄。

?

總結

以上是生活随笔為你收集整理的EOF和BOF的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。