Поделиться через


Границы набора записей

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.