Limiti di un recordset

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

ProductID ProductName UnitPrice
Bof
7 Zio Bob's Organic Pears 30.0000
14 Tofu 23.2500
28 Rssle Sauerkraut 45.6000
51 Mele essiccate manjimup 53.0000
74 Longlife Tofu 10.0000
EOF

Quando un cursore passa dall'ultimo record, EOF è impostato su True; in caso contrario, il relativo valore è False. Analogamente, quando il cursore si sposta prima del primo record, BOF è 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 sia BOF che EOF sono True, l'oggetto Recordset è vuoto. Entrambe le proprietà saranno False per un oggetto Recordset appena aperto e non vuoto. È possibile usare le proprietà BOF e 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 prendere 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 e EOF possono rimanere False finché non si tenta di riposizionare il record corrente, a seconda del provider. Per altre informazioni, vedere Eliminazione di record usando il metodo Delete.