Compartir a través de


Límites de un conjunto de registros

Recordset admite las propiedades BOF y EOF para delinear el principio y el final, respectivamente, del conjunto de datos. Puede considerar BOF y EOF como registros "fantasma" que se colocan al principio y al final del objeto Recordset. Contando con BOF y EOF, nuestro objeto Recordset de ejemplo tendría ahora el siguiente aspecto:

ProductID ProductName UnitPrice
BOF
7 Peras secas orgánicas del tío Bob 30,0000
14 Tofu 23,2500
28 Chucrut Rssle 45,6000
51 Manzanas secas Manjimup 53,0000
74 Tofu de larga duración 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. De forma similar, cuando un 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 los registros del conjunto de datos, como se muestra en el siguiente fragmento de código de 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 BOF y EOF son True, el objeto Recordset está vacío. Ambas propiedades serán False para un objeto Recordset no vacío recién abierto. Puede usar las propiedades BOF y EOF juntas para determinar si un objeto Recordset está vacío o no, como se muestra en el siguiente fragmento de código de 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 el vacío de un objeto Recordset comprobando si su valor de propiedad RecordCount es cero (0) o no, debe tomar precauciones para usar un cursor y proveedor adecuados que admitan la devolución del número 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 como False hasta que intente cambiar la posición del registro actual, dependiendo del proveedor. Para obtener más información, vea Eliminación de registros utilizando el método Delete.