Limites de um conjunto de registros

O conjunto de registros dá suporte às propriedades BOF e EOF para delinear o início e o fim, respectivamente, do conjunto de dados. Você pode pensar em BOF e EOF como registros "fantasmas" posicionados no início e no final do Recordset. Contando BOF e EOF, nosso conjunto de registros de exemplo agora teria esta aparência:

ProductID ProductName UnitPrice
BOF
7 Peras secas orgânicas do tio Bob 30.0000
14 Tofu 23.2500
28 Rssle Sauerkraut 45.6000
51 Maçãs secas manjimup 53.0000
74 Longlife Tofu 10.0000
EOF

Quando um cursor passa do último registro, o EOF é definido como True; caso contrário, seu valor é False. Da mesma forma, quando o cursor se move antes do primeiro registro, BOF é definido como True; caso contrário, seu valor é False. Essas propriedades são comumente usadas para enumerar registros no conjunto de dados, conforme ilustrado no fragmento de código JScript a seguir.

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();  
}  

Se BOF e EOF forem True, o objeto Recordset estará vazio. Ambas as propriedades serão False para um objeto Recordset recém-aberto e não vazio. Você pode usar as propriedades BOF e EOF juntas para determinar se um objeto Recordset está vazio ou não, conforme mostrado no fragmento de código JScript a seguir.

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

Esse esquema funciona para todos os tipos de cursor e é independente dos provedores subjacentes. Se você tentar determinar o vazio de um objeto Recordset verificando se o valor da propriedade RecordCount é zero (0) ou não, você deve tomar precauções para usar um cursor e um provedor apropriados que dão suporte ao retorno do número de registros no resultado.

Se você excluir o último registro restante no objeto Recordset , o cursor será deixado em um estado indeterminado. As propriedades BOF e EOF podem permanecer False até que você tente reposicionar o registro atual, dependendo do provedor. Para obter mais informações, consulte Excluir registros usando o método Delete.