資料錄集的界限

Recordset 支援 BOFEOF 屬性,分別描述資料集的開頭和結尾。 您可以將 BOFEOF 視為位於 Recordset開頭和結尾的「虛設」記錄。 計算 BOFEOF,我們的範例 Recordset 現在看起來會像這樣:

ProductID ProductName UnitPrice
轉爐
7 Uncle Bob 的有機乾果 30.0000
14 豆腐 23.2500
28 Rssle Sauerkraut 45.6000
51 Manjimup Dried Apples 53.0000
74 Longlife Tofu 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();  
}  

如果 BOFEOF 都是 True則 Recordset 物件是空的。 新開啟的非空白Recordset物件兩個屬性都會是False。 您可以使用 BOFEOF 屬性來判斷 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 屬性值是否為零來判斷 Recordset 物件的空性, (0) ,您必須採取預防措施,以使用適當的資料指標和提供者,以支援傳回結果中的記錄數目。

如果您刪除 Recordset 物件中的最後一筆剩餘記錄,游標會處於不確定的狀態。 BOFEOF屬性可能會維持為 False,直到您嘗試根據提供者重新置放目前記錄為止。 如需詳細資訊,請參閱 使用 Delete 方法刪除記錄