Freigeben über


Cursortypen

ODBC definiert vier von Microsoft SQL Server und dem SQL Server Native Client-ODBC-Treiber unterstützte Cursortypen. Diese Cursor sind im Hinblick auf ihre Fähigkeit, Änderungen am Resultset zu erkennen, sowie im Verbrauch von Ressourcen, wie z. B. Arbeitsspeicher und Speicherplatz in tempdb, verschieden. Ein Cursor kann Änderungen an Zeilen nur dann erkennen, wenn er versucht, diese Zeilen erneut abzurufen. Es gibt keine Möglichkeit, wie die Datenquelle den Cursor über Änderungen an den derzeit abgerufenen Zeilen informieren könnte. Die Fähigkeit eines Cursors, Änderungen, die nicht durch den Cursor vorgenommen wurden, zu erkennen, hängt außerdem von der Transaktionsisolationsstufe ab.

Die vier von SQL Server unterstützten ODBC-Cursortypen sind:

  • Vorwärtscursor unterstützen das Scrollen nicht, sondern ausschließlich das serielle Abrufen von Zeilen vom Anfang bis zum Ende des Cursors.

  • Statische Cursor werden in tempdb erstellt, wenn der Cursor geöffnet wird. Ein statischer Cursor zeigt das Resultset immer so an, wie es zur Verfügung stand, als der Cursor geöffnet wurde. Er reflektiert keine Änderungen an den Daten. Statische SQL Server-Cursor sind stets schreibgeschützt. Da ein statischer Servercursor als Arbeitstabelle in tempdb erstellt wird, kann die Größe des Cursorresultsets die maximale in SQL Server zulässige Zeilengröße nicht überschreiten.

  • In einem keysetgesteuerten Cursor werden Mitgliedschaft und Reihenfolge der Zeilen beim Öffnen des Cursors festgelegt. Änderungen an Nichtschlüsselspalten sind durch den Cursor sichtbar.

  • Dynamische Cursor sind das Gegenteil von statischen Cursorn. Dynamische Cursor spiegeln alle Änderungen an den Zeilen in den Resultsets wider. Die Datenwerte, Reihenfolge und Mitgliedschaft der Zeilen im Resultset können sich bei jedem Abrufvorgang ändern.

Siehe auch

Konzepte