Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (Deutsch) » SQL Anywhere Server - Programmierung » ODBC-Unterstützung » Ergebnismengen in ODBC-Anwendungen

 

ODBC-Cursormerkmale

ODBC-Funktionen, die Anweisungen ausführen und Ergebnismengen verarbeiten, verwenden für diese Aufgaben Cursor. Anwendungen öffnen implizit einen Cursor, wenn sie die Funktion SQLExecute oder SQLExecDirect ausführen.

Bei Anwendungen, die sich nur vorwärts durch eine Ergebnismenge bewegen und sie nicht aktualisieren, ist das Cursor-Verhalten recht einfach. Standardmäßig erwarten ODBC-Anwendungen dieses Verhalten. ODBC definiert einen reinen Lesecursor, der nur vorwärts liest, und SQL Anywhere liefert einen Cursor, der für diesen Fall auf Performance optimiert ist.

Ein einfaches Beispiel für einen Vorwärtscursor finden Sie unter Datenabfrage.

Bei Anwendungen, die sowohl vorwärts als auch rückwärts durch die Ergebnismenge blättern müssen, wie etwa Anwendungen mit grafischer Benutzeroberfläche, ist das Cursor-Verhalten komplexer. Wie reagiert die Anwendung, wenn sie eine Zeile zurückgibt, die von einer anderen Anwendung aktualisiert wurde? ODBC definiert eine Reihe von scrollfähigen Cursorn, damit Sie das gewünschte Verhalten in Ihre Anwendung einbauen können. SQL Anywhere liefert eine vollständige Gruppe von Cursorn, die mit den scrollfähigen ODBC-Cursortypen übereinstimmen.

Die erforderlichen Cursor-Merkmale werden mit der Funktion SQLSetStmtAttr gesetzt, die die Anweisungsattribute definiert. Sie müssen SQLSetStmtAttr aufrufen, bevor Sie eine Anweisung ausführen, die eine Ergebnismenge erzeugt.

Viele Cursor-Merkmale können mit SQLSetStmtAttr festgelegt werden. Folgende Merkmale bestimmen den von SQL Anywhere gelieferten Cursortyp:

  • SQL_ATTR_CURSOR_SCROLLABLE   Setzen Sie dies für einen scrollfähigen Cursor auf SQL_SCROLLABLE und für einen Vorwärtscursor auf SQL_NONSCROLLABLE. SQL_NONSCROLLABLE ist der Standardwert.

  • SQL_ATTR_CONCURRENCY   Auf einen der folgenden Werte setzen:

    • SQL_CONCUR_READ_ONLY   Aktualisierungen deaktivieren. SQL_CONCUR_READ_ONLY ist der Standardwert.

    • SQL_CONCUR_LOCK   Verwendet die niedrigste Sperrstufe, die ausreicht, um eine Zeile zu aktualisieren.

    • SQL_CONCUR_ROWVER   Verwendet optimistische Parallelitätssteuerung, bei der Zeilenversionen verglichen werden, wie z.B. SQLBase ROWID oder Sybase TIMESTAMP.

    • SQL_CONCUR_VALUES   Verwendet optimistische Parallelitätssteuerung, bei der Werte verglichen werden.

Weitere Hinweise finden Sie unter "SQLSetStmtAttr" in der Microsoft-Dokumentation ODBC API Reference unter [external link] http://msdn.microsoft.com/de-de/library/ms712631.aspx.

 Beispiel