Freigeben über


Aktueller Datensatz und Größe des Recordset

In diesem Abschnitt wird beschrieben, wie die aktuelle Position des Cursors im Beispiel Recordset aus dem JScript-Codebeispiel ermittelt wird, um ein Recordsetzurückzugeben.

Aktueller Datensatz

Der aktuelle Datensatz entspricht dem Eintrag, auf den die Position des Cursors des Recordset-Objekts zeigt. Wenn ein Recordset-Objekt aus der Datenquelle zurückgegeben wird, als Ergebnis des Aufrufs von Recordset.Open, Command.Executeoder Connection.Execute (einschließlich Connection.NamedCommand und Connection.StoredProcedure), ist der Cursor auf den ersten Datensatz gesetzt. Im Beispieldatensatz ist der erste Datensatz der Artikel "Onkel Bobs organische getrocknete Birnen".

Größe des Recordsets

Um die Größe eines Recordset--Objekts zu ermitteln, rufen Sie den Wert der Recordset.RecordCount-Eigenschaft ab. Dieser Wert ist eine lange ganze Zahl, die die Anzahl der Datensätze im Recordset-angibt. Wenn das Dataset vom OLEDB-Anbieter für Microsoft SQL Server zurückgegeben wird, gibt dieser Wert die Anzahl der zurückgegebenen Zeilen an. Das Lesen der RecordCount--Eigenschaft eines geschlossenen Recordset- verursacht einen Fehler.

Wenn die Anzahl der Datensätze nicht bestimmt werden kann, lautet der Wert der Eigenschaft -1.

Der Wert der eigenschaft RecordCount hängt auch von den Funktionen des Anbieters und dem verwendeten Cursortyp ab. Bei einem nur vorwärts gerichteten Cursor ist der Wert -1. Bei einem statischen oder Keyset-Cursor ist der Wert die tatsächliche Anzahl von Datensätzen, die im Recordset-Objekt enthalten sind. Bei einem dynamischen Cursor ist der Wert abhängig von der Datenquelle entweder -1 oder die tatsächliche Anzahl von Datensätzen.

Ein Cursor, der Recordcount- unterstützt, muss sich mehr anstrengen und erfordert daher mehr Rechenleistung als ein Cursor, der Recordcount-nicht unterstützt. Wenn Sie die Anzahl der Datensätze nicht kennen müssen, kann die Verwendung eines anderen Cursortyps dazu beitragen, die Leistung Ihrer Anwendung zu verbessern, insbesondere, wenn Sie mit einem großen Dataset umgehen müssen.

In einigen Fällen kann ein Anbieter oder ein Cursor den Wert RecordCount nicht ermitteln, ohne zuerst alle Datensätze aus der Datenquelle abzurufen. Rufen Sie die Recordset-auf, um eine genaue Zählung sicherzustellen.MoveLast-Methode vor dem Aufrufen Recordset.RecordCount.

Das Beispiel Recordset-Objekt, das mithilfe des JScript-Codebeispiels abgerufen wird, verwendet einen Vorwärtscursor, sodass der Aufruf von RecordCount für dieses Objekt immer zu -1 führt. Wenn Sie die Codezeile ändern, die das Recordsetaufruft.Open-Methode wie im folgenden Beispiel gezeigt, gibt die RecordCount-Eigenschaft die tatsächliche Anzahl der abgerufenen Datensätze zurück.

oRs.Open sSQL, sCnStr, adOpenStatic, adLockOptimistic, adCmdText   

Dies liegt daran, dass statische Cursor mit dem Microsoft OLE DB-Anbieter für SQL Server die RecordCount-unterstützen. In diesem Beispiel gibt es fünf Datensätze und damit RecordCount den Wert 5 liefern sollte.

Dieser Abschnitt enthält das folgende Thema.

Grenzen eines Recordsets