Freigeben über


SQLGetData (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, Anwendungen zu ändern, die dieses Feature derzeit verwenden. Microsoft empfiehlt die Verwendung der Cursorfunktion des Treibers.

In diesem Thema wird die Verwendung der SQLGetData-Funktion in der Cursorbibliothek erläutert. Allgemeine Informationen zu SQLGetData finden Sie unter SQLGetData-Funktion.

Die Cursorbibliothek implementiert SQLGetData , indem zuerst eine SELECT-Anweisung mit einer WHERE-Klausel erstellt wird, die die in ihrem Cache gespeicherten Werte für jede gebundene Spalte in der aktuellen Zeile aufzählt. Anschließend wird die SELECT-Anweisung ausgeführt, um die Zeile erneut auszuwählen, und ruft SQLGetData im Treiber auf, um die Daten aus der Datenquelle abzurufen (im Gegensatz zum Cache).

Achtung

Die WHERE-Klausel , die von der Cursorbibliothek zum Identifizieren der aktuellen Zeile erstellt wurde, kann keine Zeilen identifizieren, eine andere Zeile identifizieren oder mehr als eine Zeile identifizieren. Weitere Informationen finden Sie unter Erstellen durchsuchter Anweisungen.

Wenn das Attribut der SQL_ATTR_USE_BOOKMARKS-Anweisung auf SQL_UB_VARIABLE festgelegt ist, kann SQLGetData in Spalte 0 aufgerufen werden, um Lesezeichendaten zurückzugeben.

Aufrufe von SQLGetData unterliegen den folgenden Einschränkungen:

  • SQLGetData kann nicht für vorwärtsgerichtete Cursor aufgerufen werden.

  • SQLGetData kann nur aufgerufen werden, wenn die folgenden Bedingungen erfüllt sind: Eine SELECT-Anweisung , die das Resultset generiert hat; die SELECT-Anweisung enthielt keinen Join, keine UNION-Klausel oder eine GROUP BY-Klausel . und alle Spalten, die einen Alias oder Ausdruck in der Auswahlliste verwendet haben, waren nicht an SQLBindCol gebunden.

  • Wenn der Treiber nur eine aktive Anweisung unterstützt, ruft die Cursorbibliothek den Rest des Resultsets ab, bevor die SELECT-Anweisung ausgeführt und SQLGetData aufgerufen wird.