Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Każdy znacznik parametru w instrukcji SQL musi być powiązany, czyli ograniczony, do zmiennej w aplikacji, zanim instrukcja może zostać wykonana. Robi się to poprzez wywołanie funkcji SQLBindParameter . SQLBindParameter opisuje zmienną programu (adres, typ danych C itd.) dla sterownika. Identyfikuje także marker parametru, wskazując jego wartość porządkową, a następnie opisuje cechy obiektu SQL, który reprezentuje (typ danych SQL, precyzja itd.).
Markery parametrów mogą być związane lub odbite w dowolnym momencie przed wykonaniem instrukcji. Wiązanie parametrów pozostaje w mocy do momentu wystąpienia jednego z następujących przypadków:
Wywołanie do SQLFreeStmt z parametrem Option ustawionym na SQL_RESET_PARAMS uwalnia wszystkie parametry powiązane z uchwytem instrukcji.
Wywołanie do SQLBindParameter z ParameterNumber ustawionym na porządkowy marker parametru automatycznie zwalnia poprzednie powiązanie.
Aplikacja może również wiązać parametry z tablicami zmiennych programowych, aby przetwarzać instrukcje SQL w partiach. Istnieją dwa typy wiązania tablic:
Powiązanie kolumnowe odbywa się, gdy każdy pojedynczy parametr jest przypisany do własnej tablicy zmiennych.
Wiązanie kolumnowe określa się poprzez wywołanie SQLSetStmtAttr z atrybutem ustawionym na SQL_ATTR_PARAM_BIND_TYPE i ValuePtr na SQL_PARAM_BIND_BY_COLUMN.
Wiązanie wierszowe polega na tym, że wszystkie parametry w instrukcji SQL są powiązane jako jednostka z tablicą struktur zawierających poszczególne zmienne dla parametrów.
Wiązanie wierszowe określa się przez wywołanie SQLSetStmtAttr z atrybutem ustawionym na SQL_ATTR_PARAM_BIND_TYPE i ValuePtr na rozmiar struktury zawierającej zmienne programowe.
Gdy sterownik ODBC natywnego klienta SQL Server wysyła do serwera parametry znaków lub binarnych ciągów znaków, dodaje wartości do długości określonej w parametrze SQLBindParameterColumnSize. Jeśli aplikacja ODBC 2.x określa 0 dla ColumnSize, sterownik dopasowuje wartość parametru do precyzji typu danych. Precyzja wynosi 8000 przy połączeniu z serwerami SQL Server, 255 przy połączeniu z wcześniejszymi wersjami SQL Server. ColumnSize jest w bajtach dla kolumn wariantów.
SQL Server obsługuje definiowanie nazw parametrów procedur przechowywanych. ODBC 3.5 wprowadził także wsparcie dla nazwanych parametrów używanych podczas wywoływania procedur przechowywanych w SQL Server. To wsparcie może być wykorzystane do:
Wywołaj procedurę przechowywaną i podaj wartości dla podzbioru parametrów zdefiniowanych dla procedury przechowywanej.
Określ parametry w innej kolejności w aplikacji niż w kolejności określonej podczas tworzenia procedury przechowywanej.
Parametry nazwane są obsługiwane tylko wtedy, gdy używa się instrukcji EXECUTE Transact-SQL lub sekwencji escape ODBC CALL do wykonania procedury przechowywanej.
Jeśli SQL_DESC_NAME jest ustawiony dla parametru procedury przechowywanej, wszystkie parametry procedury przechowywanej w zapytaniu również powinny ustawić SQL_DESC_NAME. Jeśli literale są używane w wywołaniach procedur przechowywanych, gdzie parametry SQL_DESC_NAME ustawione, literale powinny używać formatu 'wartość nazwy=', gdzie nazwa to nazwa parametru procedury przechowywanej (na przykład @p1). Więcej informacji można znaleźć w artykule Binding Parameters by Name (Named Parameters).