記錄集的界限
Recordset 支援 BOF 和 EOF 屬性,以分別描述數據集的開頭和結尾。 您可以將 BOF 和 EOF 視為位於 Recordset開頭和結尾的「虛設」記錄。 計算 BOF 以及 EOF之後,我們的範例 Recordset 現在看起來是這樣的:
ProductID | ProductName | 單價 |
---|---|---|
基礎氧氣轉爐 | ||
7 | 鮑勃叔叔的有機乾梨 | 30.0000 |
14 | 豆腐 | 23.2500 |
28 | Rssle 德國酸菜 | 45.6000 |
51 | 曼吉穆普乾蘋果 | 53.0000 |
74 | 長壽豆腐 | 10.0000 |
EOF |
當游標移動超過最後一筆記錄時,EOF 會設定為 True;否則,其值會 False。 同樣地,當游標在第一筆記錄之前移動時,BOF 會設定為 True;否則,其值會 False。 這些屬性通常用來列舉數據集中的記錄,如下列 JScript 代碼段所示。
while (objRecordset.EOF != true)
{
// Work on the current record.
...
// Advance the cursor forward to the next record.
objRecordset.MoveNext();
}
or
while (objRecordset.BOF != true)
{
// Work on the current record.
...
// Move the cursor to the previous record.
objRecordset.MovePrevious();
}
如果 BOF 和 EOF 兩者都 True,則 Recordset 對像是空的。 這兩個屬性在新開啟、非空的 Recordset 物件中都為 False。 您可以使用 BOF 和 EOF 屬性來判斷 Recordset 物件是否為空白,如下列 JScript 代碼段所示。
if (objRecordset.EOF == true && objRecordset.BOF == true)
{
WScript.Echo("we got an empty dataset.");
}
else
{
WScript.Echo("we got a full dataset.");
}
此方案適用於所有類型的游標,且與基礎提供者無關。 如果您想透過檢查 RecordCount 屬性值是否為零 (0) 來判斷 Recordset 物件是否為空,則必須採取預防措施,使用適當支援返回結果記錄數的游標和提供者。
如果您在 Recordset 物件中刪除最後一筆剩餘的記錄,則游標會處於不確定狀態。 BOF 和 EOF 屬性可能會因提供者的不同而保持 False,直到您嘗試移動當前記錄的位置。 如需詳細資訊,請參閱 使用Delete方法刪除記錄。