Zwei globale Variablen sind für die Benutzung von Cursors wichtig, und zwar:
Diese beiden Variablen sind für den Zugriff auf Zeilen innerhalb der Ergebnismenge eines Cursor recht praktisch. An dieser Stelle soll ein Beispiel die Verwendung von Cursors verdeutlichen.
Cursors in Aktion
Das Beispiel aus Listing A benutzt einen Cursor innerhalb einer gespeicherten Prozedur. Diese akzeptiert eine userID (d. h. einen Schlüsselwert für eine Benutzertabelle), eine bookID zur Abfrage sowie die zur Abfrage erforderlichen Start- und End-Zeitpunkte. Die Prozedur sucht das Buch für den Benutzer, sofern es verfügbar ist.
Der Code enthält zwar Kommentare, doch ist die Verwendung der globalen Variable @@FETCH_STATUS mit der WHILE-Schleife vielleicht nicht ganz einfach. Auf diese Weise kann die Ausführung weitergehen, bis die Inhalte des Cursors erschöpft sind. Eine Fetch-Anweisung wird vor dem Start der WHILE-Schleife aufgerufen und kommt außerdem am Ende der WHILE-Schleife wieder zum Einsatz.
Dieses Beispiel deckt zwar nicht alle Aspekte der Verwendung von Cursors ab, aber es bietet einen Einblick in deren Benutzung und Kodierung. In der SQL Server-Dokumentation finden sich weitere Informationen zur Entwicklung eigener Cursors.
Dieser Code ließe sich problemlos auch mit Sprachen wie VB mit ADO oder VB.NET/C# mit ADO.NET programmieren. Ein Datensatz könnte aus der Datenbank ausgegeben und mithilfe eines ähnlichen Verfahrens bearbeitet werden.
Die Verwendung von Cursors
Es empfiehlt sich, Cursors sparsam und nur wenn es keine andere Alternative gibt einzusetzen. Die im Beispiel geschilderte Situation stellt eine solche Ausgangslage dar, doch lassen sich ohne Probleme noch weitere finden. Zwei Ratschläge hierzu: Ein Schlüsselsatz und statische Cursors sind zu vermeiden, da hierbei temporäre Tabellen zur Speicherung der zugrunde liegenden Schlüsselwerte erstellt werden. Außerdem kann das Aktualisieren großer Datenvolumen mit einem Cursor Probleme hinsichtlich der Verarbeitungsdauer für die Einträge aufwerfen, wobei auch Locking-Probleme entstehen können.
Page: 1 2
Höchste Zeit für eine schnelle Kupfer-Glas-Migration. Bis 2030 soll in Deutschland Glasfaser flächendeckend ausgerollt sein.
Schon im April 2025 soll Android 16 den Status Plattformstabilität erreichen. Entwicklern gibt Google danach…
Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.
Vernetzte Produkte müssen laut Cyber Resilience Act über Möglichkeiten zur Datenverschlüsselung und Zugangsverwaltung verfügen.
Das jüngste Update für Windows, macOS und Linux stopft drei Löcher. Eine Anfälligkeit setzt Nutzer…
Zwei von Google-Mitarbeitern entdeckte Schwachstellen werden bereits aktiv gegen Mac-Systeme mit Intel-Prozessoren eingesetzt. Sie erlauben…