Compartir vía


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.