資料錄集的界限
資料錄集支援 BOF 和 EOF 屬性,分別描述資料集的開頭和結尾。 您可以將 BOF 和 EOF 視為位於資料錄集開頭和結尾的「虛設」記錄。 將 BOF 和 EOF 納入考量後,我們的範例資料錄集會顯示如下:
ProductID | ProductName | UnitPrice |
---|---|---|
BOF | ||
7 | Uncle Bob 的有機梨子乾 | 30.0000 |
14 | 豆腐 | 23.2500 |
28 | Rssle 德式酸菜 | 45.6000 |
51 | Manjimup 蘋果乾 | 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 方法刪除記錄。