Границы набора записейBoundaries of a Recordset

Набор записей поддерживает свойства BOF и EOF для отделения начала и конца набора данных соответственно.Recordset supports the BOF and EOF properties to delineate the beginning and end, respectively, of the dataset. BOF и EOF можно считать «фантомными» записями, расположенными в начале и в конце набора записей.You can think of BOF and EOF as "phantom" records that are positioned at the beginning and end of the Recordset. Учитывая BOF и EOF, наш пример набора записей теперь будет выглядеть следующим образом:Counting BOF and EOF, our sample Recordset would now look like this:

ProductIDProductID ProductNameProductName Цена за единицуUnitPrice
BOFBOF
77 Дядюшканые груши Высохнутьы БобаUncle Bob's Organic Dried Pears 30,000030.0000
1414 тофуTofu 23,250023.2500
2828 Рссле квашенойRssle Sauerkraut 45,600045.6000
5151 Манжимуп высохнуть яблокиManjimup Dried Apples 53,000053.0000
7474 Лонглифе тофуLonglife Tofu 10,000010.0000
EOFEOF

Когда курсор перемещается после последней записи, для EOF задается значение true; в противном случае его значение равно false.When a cursor moves past the last record, EOF is set to True; otherwise, its value is False. Аналогично, когда курсор перемещается перед первой записью, BOF имеет значение true. в противном случае его значение равно false.Similarly, when the cursor moves before the first record, BOF is set to True; otherwise, its value is False. Эти свойства обычно используются для перечисления записей в наборе данных, как показано в следующем фрагменте кода JScript.These properties are commonly used to enumerate records in the dataset, as illustrated in the following JScript code fragment.

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 пуст.If both BOF and EOF are True, the Recordset object is empty. Оба свойства будут иметь значение false для вновь открытого, непустого объекта Recordset .Both properties will be False for a newly opened, non-empty Recordset object. Свойства BOF и EOF можно использовать совместно, чтобы определить, является ли объект набора записей пустым, как показано в следующем фрагменте кода JScript.You can use the BOF and EOF properties together to determine if a Recordset object is empty or not, as shown in the following JScript code fragment.

if (objRecordset.EOF == true && objRecordset.BOF == true)  
{  
   WScript.Echo("we got an empty dataset.");  
}  
else  
{  
   WScript.Echo("we got a full dataset.");  
}  

Эта схема работает для всех типов курсора и не зависит от базовых поставщиков.This scheme works for all types of cursor and is independent of the underlying providers. Если вы попытаетесь определить очистку объекта набора записей , проверив, имеет ли его значение свойства RecordCount ноль (0), необходимо предпринять меры предосторожности, чтобы использовать соответствующий курсор и поставщик, которые поддерживают возврат количества записей в результате.If you attempt to determine the emptiness of a Recordset object by checking if its RecordCount property value is zero (0) or not, you must take precautions to use an appropriate cursor and provider that support returning of the number of records in the result.

При удалении последней оставшейся записи в объекте набора записей курсор остается в неопределенном состоянии.If you delete the last remaining record in the Recordset object, the cursor is left in an indeterminate state. Свойства BOF и EOF могут оставаться ложными , пока вы не попытаетесь Переместить текущую запись в зависимости от поставщика.The BOF and EOF properties may remain False until you attempt to reposition the current record, depending upon the provider. Дополнительные сведения см. в разделе Удаление записей с помощью метода Delete.For more information, see Deleting Records Using the Delete Method.