Limiti di un Recordset
Recordset supporta le proprietà BOF e EOF per delineare rispettivamente l'inizio e la fine del set di dati. È possibile considerare BOF e EOF come record "fantasma" posizionati all'inizio e alla fine dell'Recordset. Contando BOF e EOF, il nostro esempio di set di record avrà un aspetto simile al seguente:
ProductID | ProductName | PrezzoUnitario |
---|---|---|
BOF | ||
7 | Pere Secche Biologiche di Zio Bob | 30,0000 |
14 | Tofu | 23.2500 |
28 | Rössle Crauti | 45.6000 |
51 | Mele essiccate Manjimup | 53.0000 |
74 | Longlife Tofu | 10,0000 |
EOF |
Quando un cursore si sposta oltre l'ultimo record, EOF è impostato su True; in caso contrario, il relativo valore è False. Analogamente, quando il cursore si sposta 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 sia BOF che EOF sono True, l'oggetto Recordset è vuoto. Entrambe le proprietà verranno false per un oggetto Recordset appena aperto e non vuoto. È possibile utilizzare insieme le proprietà BOF e EOF 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 verificando se il valore della proprietà recordCount è zero (0) o meno, è necessario adottare precauzioni per utilizzare un cursore e un provider appropriati che supportano la restituzione del numero di record nel risultato.
Se si elimina l'ultimo record rimanente nel oggetto Recordset, il cursore viene lasciato in uno stato indeterminato. Le proprietà BOF e EOF possono rimanere false fino a quando non si tenta di riposizionare il record corrente, a seconda del provider. Per ulteriori informazioni, vedere Eliminazione di record tramite il metodo Delete.