Limiti di un recordset

Recordset supporta le proprietà BOF ed EOF per delineare rispettivamente l'inizio e la fine del set di dati. È possibile pensare a BOF ed EOF come a record "fantasma" posizionati all'inizio e alla fine del recordset. Contando BOF ed EOF, il recordset di esempio sarà ora simile al seguente:

ProductID ProductName UnitPrice
BOF
7 Pere biodetri di Bob 30.0000
14 Tofu 23.2500
28 Rssle Hoerkraut 45.6000
51 Apple asciutte manjimup 53.0000
74 Longlife Tofu 10.0000
EOF

Quando un cursore si sposta oltre l'ultimo record, EOF viene impostato su True; in caso contrario, il relativo valore è False. Analogamente, quando il cursore viene spostato prima del primo record, BOF viene impostato su True. in caso contrario, il relativo valore è False. Queste proprietà vengono comunemente usate per enumerare i record nel set di dati, come illustrato nel frammento di codice JScript seguente.

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 ed EOF sono entrambi True, l'oggetto Recordset è vuoto. Entrambe le proprietà saranno False per un oggetto Recordset appena aperto e non vuoto. È possibile usare le proprietà BOF ed EOF insieme per determinare se un oggetto Recordset è vuoto o meno, come illustrato nel frammento di codice JScript seguente.

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

Questo schema funziona per tutti i tipi di cursore ed è indipendente dai provider sottostanti. Se si tenta di determinare il vuoto di un oggetto Recordset controllando se il valore della proprietà RecordCount è zero (0) o meno, è necessario adottare precauzioni per usare un cursore e un provider appropriati che supportano la restituzione del numero di record nel risultato.

Se si elimina l'ultimo record rimanente nell'oggetto Recordset, il cursore viene lasciato in uno stato indeterminato. Le proprietà BOF ed EOF possono rimanere False fino a quando non si tenta di riposizionare il record corrente, a seconda del provider. Per altre informazioni, vedere Eliminazione di record tramite il metodo Delete.