Grenzen eines Recordsets

Recordset unterstützt die Eigenschaften BOF und EOF, um den Anfang bzw. das Ende des Datensatzes abzugrenzen. Sie können sichBOF und EOF als „Phantom“-Datensätze vorstellen, die sich am Anfang und am Ende des Recordset befinden. Unter Berücksichtigung von BOF und EOF würde unser Beispiel-Recordset nun wie folgt aussehen:

ProductID ProductName UnitPrice
BOF
7 Getrocknete Birnen von Uncle Bob's Bio 30.0000
14 Tofu 23.2500
28 Rssle Sauerkraut 45.6000
51 Manjimup getrocknete Äpfel 53.0000
74 Langlebiger Tofu 10.0000
EOF

Wenn der Cursor über den letzten Datensatz hinausgeht, wird EOF auf True gesetzt, andernfalls auf False. Ähnlich verhält es sich, wenn sich der Cursor vor den ersten Datensatz bewegt, wird BOF auf True gesetzt; andernfalls ist sein Wert False. Diese Eigenschaften werden üblicherweise verwendet, um Datensätze im Datensatz aufzuzählen, wie im folgenden JScript-Codefragment dargestellt.

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();  
}  

Wenn sowohl BOF als auch EOFTrue sind, ist das Recordset-Objekt leer. Bei einem neu geöffneten, nicht leeren Recordset-Objekt werden beide Eigenschaften auf False gesetzt. Sie können die Eigenschaften BOF und EOF zusammen verwenden, um zu bestimmen, ob ein Recordset-Objekt leer ist oder nicht, wie im folgenden JScript-Codefragment gezeigt.

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

Dieses System funktioniert für alle Arten von Cursorn und ist unabhängig von den zugrunde liegenden Anbietern. Wenn Sie die Leere eines Recordset-Objekts feststellen wollen, indem Sie prüfen, ob sein RecordCount-Eigenschaftswert Null (0) ist oder nicht, müssen Sie Vorkehrungen treffen, um einen geeigneten Cursor und Anbieter zu verwenden, die die Rückgabe der Anzahl der Datensätze im Ergebnis unterstützen.

Wenn Sie den letzten verbleibenden Datensatz im Recordset-Objekt löschen, bleibt der Cursor in einem unbestimmten Zustand. Die Eigenschaften BOF und EOF können je nach Anbieter auf False bleiben, bis Sie versuchen, den aktuellen Datensatz neu zu positionieren. Weitere Informationen finden Sie unter Löschen von Datensätzen mit der Delete-Methode.