Udostępnij przez


Przesunięcia powiązań parametrów

Aplikacja może określić, że przesunięcie jest dodawane do powiązanych adresów buforu parametrów i odpowiednich adresów buforu długości/wskaźnika, gdy wywoływana jest funkcja SQLExecDirect lub SQLExecute . Wynik tych dodatków określa adresy używane w tych operacjach.

Przesunięcia wiązań umożliwiają aplikacji zmianę powiązań bez wywoływania funkcji SQLBindParameter dla wcześniej powiązanych parametrów. Wywołanie metody SQLBindParameter w celu ponownego powiązania parametru zmienia adres buforu i wskaźnik długości/wskaźnika. Ponowne powiązanie z przesunięciem, z drugiej strony, po prostu dodaje przesunięcie do istniejącego adresu buforu parametru powiązanego i adresu buforu długości/wskaźnika. Gdy są używane przesunięcia, powiązania są "szablonem" sposobu organizacji buforów aplikacji, a aplikacja może przenieść ten "szablon" do różnych obszarów pamięci, odmieniając offset. Nowe przesunięcie można określić w dowolnym momencie i jest zawsze dodawane do pierwotnie powiązanych wartości.

Aby określić przesunięcie powiązania, aplikacja ustawia atrybut instrukcji SQL_ATTR_PARAM_BIND_OFFSET_PTR na adres buforu o typie SQLINTEGER. Zanim aplikacja wywoła funkcję używającą wiązań, umieszcza przesunięcie bajtowe w tym buforze, pod warunkiem że ani adres buforu parametru, ani adres buforu długości/wskaźnika nie jest równy 0, a związany parametr jest zawarty w instrukcji SQL. Suma adresu i przesunięcia musi być prawidłowym adresem. (Oznacza to, że przesunięcie lub adres, do którego dodano przesunięcie, mogą być nieprawidłowe, o ile ich suma jest prawidłowym adresem).

Uwaga / Notatka

Przesunięcia powiązań nie są obsługiwane przez sterowniki ODBC 2.x.