Limites d’un recordset
Recordset prend en charge les propriétés BOF et EOF pour délimiter respectivement le début et la fin du jeu de données. Vous pouvez considérer BOF et EOF comme des enregistrements « fantômes » positionnés au début et à la fin du Recordset. Avec le décompte de BOF et EOF, notre exemple de Recordset ressemblerait maintenant à ceci :
ProductID | ProductName | UnitPrice |
---|---|---|
BOF | ||
7 | Uncle Bob’s Organic Dried Pears | 30.0000 |
14 | Tofu | 23.2500 |
28 | Rssle Sauerkraut | 45.6000 |
51 | Manjimup Dried Apples | 53.0000 |
74 | Longlife Tofu | 10.0000 |
EOF |
Lorsqu’un curseur se déplace au-delà du dernier enregistrement, EOF a la valeur True ; sinon, sa valeur est False. De même, lorsque le curseur se déplace avant le premier enregistrement, BOF a la valeur 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 ont tous deux la valeur True, l’objet Recordset est vide. Les deux propriétés sont False pour un objet Recordset non vide nouvellement ouvert. Vous pouvez utiliser ensemble les propriétés BOF et EOF 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.