Offsets der Parameterbindung
Eine Anwendung kann angeben, dass ein Offset zu gebundenen Parameterpufferadressen und den entsprechenden Längen-/Indikatorpufferadressen hinzugefügt wird, wenn SQLExecDirect oder SQLExecute aufgerufen wird. Das Ergebnis dieser Ergänzungen bestimmt die adressen, die in diesen Vorgängen verwendet werden.
Durch Binden von Offsets kann eine Anwendung Bindungen ändern, ohne SQLBindParameter für zuvor gebundene Parameter aufzurufen. Ein Aufruf von SQLBindParameter zum Erneuten Binden eines Parameters ändert die Pufferadresse und den Längen-/Indikatorzeiger. Durch erneutes Binden mit einem Offset wird dagegen einfach ein Offset zur vorhandenen gebundenen Parameterpufferadresse 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_PARAM_BIND_OFFSET_PTR-Anweisung auf die Adresse eines SQLINTEGER-Puffers fest. Bevor die Anwendung eine Funktion aufruft, die die Bindungen verwendet, platziert sie einen Offset in Bytes in diesem Puffer, solange weder die Parameterpufferadresse noch die Länge/Indikatorpufferadresse 0 ist und der gebundene Parameter in der SQL-Anweisung enthalten ist. 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.)
Hinweis
Bindungsoffsets werden von ODBC 2 nicht unterstützt.x-Treiber .