Vorwärtscursor

Der typische Standardcursortyp, der als Vorwärtscursor (oder nicht scrollbarer Cursor) bezeichnet wird, kann nur vorwärts durch das Resultset bewegt werden. Ein Vorwärtscursor unterstützt keinen Bildlauf (die Möglichkeit, im Resultset vorwärts und rückwärts bewegt zu werden); er unterstützt nur das Abrufen von Zeilen vom Anfang bis zum Ende des Resultsets. Bei einigen Vorwärtscursorn (wie etwa bei der SQL Server-Cursorbibliothek) werden alle Insert-, Update- und Delete-Anweisungen, die der aktuelle Benutzer ausführt (oder für die von anderen Benutzern ein Commit ausgeführt wurde) und die sich auf Zeilen im Resultset auswirken, dann sichtbar, wenn die Zeilen aus dem Cursor abgerufen werden. Da mit dem Cursor nicht zurück gescrollt werden kann, sind Änderungen, die an Zeilen in der Datenbank vorgenommen wurden, nachdem die jeweilige Zeile abgerufen wurde, über den Cursor nicht sichtbar.

Nachdem die Daten für die aktuelle Zeile verarbeitet wurden, gibt der Vorwärtscursor die Ressourcen frei, die zum Speichern dieser Daten verwendet wurden. Vorwärtscursor sind standardmäßig dynamisch, d. h. dass alle Änderungen ermittelt werden, während die aktuelle Zeile verarbeitet wird. Damit kann der Cursor schneller gestartet werden, und Updates an den zugrunde liegenden Tabellen können im Resultset angezeigt werden.

Obwohl Vorwärtscursor das Zurückscrollen nicht unterstützen, können Ihre Anwendungen zum Anfang des Resultsets zurückkehren, indem der Cursor beendet und erneut gestartet wird. Dies ist eine effektive Möglichkeit, mit kleinen Datenmengen zu arbeiten. Alternativ könnte Ihre Anwendung das Resultset einmal lesen, die Daten lokal zwischenspeichern und dann den lokalen Datencache durchsuchen.

Wenn Ihre Anwendung keinen Bildlauf durch das Resultset erfordert, ist der Vorwärtscursor die beste Möglichkeit, Daten schnell mit geringem Aufwand abzurufen. Verwenden Sie adOpenForwardOnly CursorTypeEnum, um anzugeben, dass Sie einen Vorwärtscursor in ADO verwenden möchten.

Weitere Informationen

Statische Cursor
KEYSET-Cursor
Dynamische Cursor