记录集的边界
Recordset 支持使用 BOF 和 EOF 属性来分别描绘数据集的开始和结束。 可以将 BOF 和 EOF 视为位于 Recordset 开头和结尾的“虚拟”记录。 算上 BOF 和 EOF,我们的示例 Recordset 现在如下所示:
ProductID | ProductName | 单价 |
---|---|---|
BOF | ||
7 | Uncle Bob's Organic Dried Pears | 30.0000 |
14 | Tofu | 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();
}
如果 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 方法删除记录。