Partager via


Limites d’un ensemble d’enregistrements

Recordset prend en charge les propriétés BOF et EOF pour délimiter respectivement le jeu de données de début et de fin. Vous pouvez considérer BOF et EOF comme des enregistrements « fantômes » positionnés au début et à la fin du jeu d’enregistrements . En comptant BOF et EOF, notre exemple de jeu d'enregistrements Recordset ressemblerait maintenant à ceci :

IdentifiantProduit ProductName PrixUnitaire
BOF
7 Poires séchées biologiques de l’oncle Bob 30,0000
14 Tofu 23.2500
28 Rssle Choucroute 45.6000
51 Pommes séchées manjimup 53.0000
74 Longlife Tofu 10,0000
EOF

Lorsqu'un curseur dépasse le dernier enregistrement, EOF est réglé sur True; sinon, sa valeur est False. De même, lorsque le curseur se déplace avant le premier enregistrement, BOF est défini sur True; sinon, sa valeur est False. Ces propriétés sont couramment utilisées pour énumérer les enregistrements dans le jeu de données, comme illustré dans le fragment de code JScript suivant.

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 et EOF sont True, l’objet recordset est vide. Les deux propriétés sont False pour un objet records et non vide nouvellement ouvert. Vous pouvez utiliser les propriétés BOF et EOF ensemble pour déterminer si un objet Recordset est vide ou non, comme indiqué dans le fragment de code JScript suivant.

if (objRecordset.EOF == true && objRecordset.BOF == true)  
{  
   WScript.Echo("we got an empty dataset.");  
}  
else  
{  
   WScript.Echo("we got a full dataset.");  
}  

Ce schéma fonctionne pour tous les types de curseurs et est indépendant des fournisseurs sous-jacents. Si vous tentez de déterminer les vides d’un objet Recordset en vérifiant si sa valeur de propriété RecordCount est égale à zéro (0) ou non, vous devez prendre des précautions pour utiliser un curseur et un fournisseur appropriés qui prennent en charge le retour du nombre d’enregistrements dans le résultat.

Si vous supprimez le dernier enregistrement restant dans l’objet Recordset, le curseur est laissé dans un état indéterminé. Les propriétés BOF et EOF peuvent rester false jusqu’à ce que vous essayiez de repositionner l’enregistrement actif, en fonction du fournisseur. Pour plus d’informations, consultez Suppression d’enregistrements à l’aide de la méthode Delete.