Границы набора записей
Recordset поддерживает свойства BOF и EOF для обозначения начала и конца набора данных соответственно. BoF и EOF можно рассматривать как "фантомные" записи, расположенные в начале и конце набора записей. При подсчете BOF и EOF наш пример Набора записей теперь будет выглядеть следующим образом:
ProductID | ProductName | Цена за единицу |
---|---|---|
BOF | ||
7 | Органические сушеные груши дяди Боба | 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 пуст. Оба свойства будут иметь значение False для вновь открытого непустого объекта Recordset . Свойства 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.");
}
Эта схема работает для всех типов курсоров и не зависит от базовых поставщиков. Если вы пытаетесь определить пустоту объекта Recordset , проверив, равно ли его значение свойства RecordCount нулю (0) или нет, необходимо принять меры предосторожности, чтобы использовать соответствующий курсор и поставщик, поддерживающий возврат количества записей в результате.
Если удалить последнюю оставшуюся запись в объекте Recordset , курсор останется в неопределенном состоянии. Свойства BOF и EOF могут оставаться false , пока не будет предпринята попытка изменить положение текущей записи в зависимости от поставщика. Дополнительные сведения см. в разделе Удаление записей с помощью метода Delete.