Verwenden der ODBC-Cursorbibliothek

Important

Dieses Feature wird in einer zukünftigen Version von Windows entfernt. Vermeiden Sie die Verwendung dieses Features in neuer Entwicklungsarbeit, und planen Sie, Anwendungen zu ändern, die dieses Feature derzeit verwenden. Microsoft empfiehlt die Verwendung der Cursorfunktion des Treibers.

Um die ODBC-Cursor-Bibliothek zu verwenden, eine Anwendung:

  1. Ruft SQLSetConnectAttr mit einem Attribut SQL_ATTR_ODBC_CURSORS auf, um anzugeben, wie die Cursor-Bibliothek mit einer bestimmten Verbindung verwendet werden soll. Die Cursorbibliothek kann immer verwendet werden (SQL_CUR_USE_ODBC), nur verwendet werden, wenn der Treiber keine scrollbaren Cursor unterstützt (SQL_CUR_USE_IF_NEEDED), oder nie verwendet werden (SQL_CUR_USE_DRIVER).

  2. Ruft SQLConnect, SQLDriverConnect oder SQLBrowseConnect auf, um sich mit der Datenquelle zu verbinden.

  3. Ruft SQLSetStmtAttr auf, um den Cursortyp (SQL_ATTR_CURSOR_TYPE), Nebenläufigkeit (SQL_ATTR_CONCURRENCY) und Zeilensatzgröße (SQL_ATTR_ROW_ARRAY_SIZE) anzugeben. Die Cursor-Bibliothek unterstützt sowohl vorwärtsgesteuerte als auch statische Cursor. Nur vorwärtsgesteuerte Cursor müssen nur lesegeschützt sein, während statische Cursor schreibgeschützt sein können oder eine optimistische Nebenläufigkeitssteuerung nutzen können, um Werte zu vergleichen.

  4. Zuweist einen oder mehrere Rowset-Puffer und ruft SQLBindCol ein- oder mehrmals auf, um diese Puffer an Ergebnismengenspalten zu binden.

  5. Erzeugt eine Ergebnismenge durch Ausführung einer SELECT-Anweisung oder eines Verfahrens oder durch Aufruf einer Katalogfunktion. Wenn die Anwendung positionierte Update-Anweisungen ausführt, sollte sie eine SELECT FOR-Anweisung UPDATE ausführen, um die Ergebnismenge zu generieren.

  6. Ruft SQLFetch oder SQLFetchScroll ein- oder mehrmals auf, um durch die Ergebnismenge zu scrollen.

Die Anwendung kann die Datenwerte in den Rowset-Puffern ändern. Um die Rowset-Puffer mit Daten aus dem Cursor-Bibliothekscache aufzufrischen, ruft eine Anwendung SQLFetchScroll auf, wobei das FetchOrientation-Argument auf SQL_FETCH_RELATIVE und das FetchOffset-Argument auf 0 gesetzt ist.

Um Daten aus einer ungebundenen Spalte abzurufen, ruft die Anwendung SQLSetPos auf, um den Cursor auf der gewünschten Zeile zu positionieren. Anschließend ruft es SQLGetData auf, um die Daten abzurufen.

Um die Anzahl der aus der Datenquelle abgerufenen Zeilen zu bestimmen, ruft die Anwendung SQLRowCount auf.