Verwenden der ODBC-Cursorbibliothek

Wichtig

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

Um die ODBC-Cursorbibliothek zu verwenden, eine Anwendung:

  1. Ruft SQLSetConnectAttr mit einem Attribut von SQL_ATTR_ODBC_CURSORS auf, um anzugeben, wie die Cursorbibliothek 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 (SQL_CUR_USE_DRIVER).

  2. Ruft SQLConnect, SQLDriverConnect oder SQLBrowseConnect auf, um eine Verbindung mit der Datenquelle herzustellen.

  3. Ruft SQLSetStmtAttr auf, um den Cursortyp (SQL_ATTR_CURSOR_TYPE), die Parallelität (SQL_ATTR_CONCURRENCY) und die Rowsetgröße (SQL_ATTR_ROW_ARRAY_SIZE) anzugeben. Die Cursorbibliothek unterstützt vorwärtsgerichtete und statische Cursor. Vorwärtscursor müssen schreibgeschützt sein, während statische Cursor schreibgeschützt sein können oder eine optimistische Parallelitätssteuerung verwenden können, um Werte zu vergleichen.

  4. Weist einen oder mehrere Rowsetpuffer zu und ruft SQLBindCol einmal oder mehrmals auf, um diese Puffer an Resultsetspalten zu binden.

  5. Generiert ein Resultset durch Ausführen einer SELECT-Anweisung oder einer Prozedur oder durch Aufrufen einer Katalogfunktion. Wenn die Anwendung positionierte Updateanweisungen ausführt, sollte sie eine SELECT FOR UPDATE-Anweisung ausführen, um das Resultset zu generieren.

  6. Ruft SQLFetch oder SQLFetchScroll einmal oder mehrmals auf, um durch das Resultset zu scrollen.

Die Anwendung kann Datenwerte in den Rowsetpuffern ändern. Um die Rowsetpuffer mit Daten aus dem Cache der Cursorbibliothek zu aktualisieren, ruft eine Anwendung SQLFetchScroll auf, wobei das Argument FetchOrientation auf SQL_FETCH_RELATIVE und das FetchOffset-Argument auf 0 festgelegt ist.

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

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