Límites de un conjunto de registros
Recordset admite las propiedades BOF y EOF para definir el principio y el final, respectivamente, del dataset. Puede considerar BOF y EOF como registros "fantasma" que se colocan al principio y al final del Recordset. Contar BOF y EOF, el recordset de de ejemplo tendría este aspecto:
ID de Producto | ProductName | Precio unitario |
---|---|---|
Horno Básico de Oxígeno (BOF) | ||
7 | Peras secas orgánicas del tío Bob | 30,0000 |
14 | Tofu | 23.2500 |
28 | Rssle Sauerkraut | 45.6000 |
51 | Manjimup Manzanas secas | 53.0000 |
74 | Longlife Tofu | 10.0000 |
EOF |
Cuando un cursor se mueve más allá del último registro, EOF se establece en True; de lo contrario, su valor es False. Del mismo modo, cuando el cursor se mueve antes del primer registro, BOF se establece en True; de lo contrario, su valor es False. Estas propiedades se usan normalmente para enumerar registros en el conjunto de datos, como se muestra en el siguiente fragmento de código JScript.
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();
}
Si tanto BOF como EOF son True, el objeto Recordset está vacío. Las dos propiedades estarán en False para un objeto Recordset recién abierto. Puede usar conjuntamente las propiedades BOF y EOF para determinar si un objeto Recordset está vacío o no, como se muestra en el siguiente fragmento de código JScript.
if (objRecordset.EOF == true && objRecordset.BOF == true)
{
WScript.Echo("we got an empty dataset.");
}
else
{
WScript.Echo("we got a full dataset.");
}
Este esquema funciona para todos los tipos de cursor y es independiente de los proveedores subyacentes. Si intenta determinar la vacuidad de un objeto Recordset de comprobando si su propiedad RecordCount es cero (0) o no, debe tomar precauciones para usar un cursor y proveedor adecuados que admitan devolver el recuento de registros en el resultado.
Si elimina el último registro restante en el objeto Recordset, el cursor se deja en un estado indeterminado. Las propiedades BOF y EOF pueden permanecer False hasta que se intente reposicionar el registro actual, dependiendo del proveedor. Para obtener más información, vea Eliminar registros mediante el método Delete.