Abrufen von Ergebnissen (Erweitert)
Eine Anwendung kann angeben, dass ein Offset zu gebundenen Datenpufferadressen und den entsprechenden Längen-/Indikatorpufferadressen hinzugefügt wird, wenn SQLBulkOperations, SQLFetch, SQLFetchScroll oder SQLSetPos aufgerufen wird. Die Ergebnisse dieser Ergänzungen bestimmen die adressen, die in diesen Vorgängen verwendet werden.
Durch Binden von Offsets kann eine Anwendung Bindungen ändern, ohne SQLBindCol für zuvor gebundene Spalten aufzurufen. Ein Aufruf von SQLBindCol zum erneuten Binden von Daten ändert die Pufferadresse und den Längen-/Indikatorzeiger. Durch erneutes Verknüpfen mit einem Offset wird dagegen einfach ein Offset zur vorhandenen gebundenen Datenpufferadresse und der Längen-/Indikatorpufferadresse hinzugefügt. Bei Verwendung von Offsets handelt es sich bei den Bindungen um eine "Vorlage", wie die Anwendungspuffer angeordnet werden, und die Anwendung kann diese "Vorlage" in verschiedene Speicherbereiche verschieben, indem sie den Offset ändern. Ein neuer Offset kann jederzeit angegeben werden und wird immer zu den ursprünglich gebundenen Werten hinzugefügt.
Um einen Bindungsoffset anzugeben, legt die Anwendung das Attribut der SQL_ATTR_ROW_BIND_OFFSET_PTR-Anweisung auf die Adresse eines SQLINTEGER-Puffers fest. Bevor die Anwendung eine Funktion aufruft, die die Bindungen verwendet, z. B. SQLBulkOperations, SQLFetchScroll oder SQLSetPos, platziert sie einen Offset in Bytes in diesem Puffer, solange weder die Datenpufferadresse noch die Längen-/Indikatorpufferadresse 0 ist, und solange sich die gebundene Spalte im Resultset befindet. Die Summe der Adresse und des Offsets muss eine gültige Adresse sein. (Dies bedeutet, dass entweder oder sowohl der Offset als auch die Adresse, zu der der Offset hinzugefügt wird, ungültig sein kann, solange die Summe eine gültige Adresse ist.) Das attribut SQL_ATTR_ROW_BIND_OFFSET_PTR-Anweisung ist ein Zeiger, sodass der Offsetwert auf mehrere Bindungsdaten angewendet werden kann, die durch Ändern eines Offsetwerts geändert werden können. Eine Anwendung muss sicherstellen, dass der Zeiger wieder Standard gültig ist, bis der Cursor geschlossen ist.
Hinweis
Bindungsoffsets werden von ODBC 2 nicht unterstützt.x-Treiber .
In diesem Abschnitt werden die folgenden Themen behandelt: