Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby ustawić wartość parametru, aplikacja po prostu ustawia wartość zmiennej powiązanej z parametrem. Nie jest ważne, gdy ta wartość jest ustawiona, o ile jest ustawiona przed wykonaniem instrukcji. Aplikacja może ustawić wartość przed lub po powiązaniu zmiennej i może zmienić wartość tyle razy, ile chce. Po wykonaniu instrukcji sterownik po prostu pobiera bieżącą wartość zmiennej. Jest to szczególnie przydatne, gdy przygotowana instrukcja jest wykonywana więcej niż raz; aplikacja ustawia nowe wartości dla niektórych lub wszystkich zmiennych za każdym razem, gdy instrukcja jest wykonywana. Aby zapoznać się z tym przykładem, zobacz Przygotowanie wykonania we wcześniejszej części tej sekcji.
Jeśli bufor długości/wskaźnika został powiązany podczas wywołania metody SQLBindParameter, przed wykonaniem zapytania należy ustawić jedną z następujących wartości:
Długość bajtów danych w zmiennej powiązanej. Sterownik sprawdza tę długość tylko wtedy, gdy zmienna jest typu znakowego lub binarnego (ValueType jest SQL_C_CHAR lub SQL_C_BINARY).
SQL_NTS. Dane są ciągiem zakończonym o wartości null.
SQL_NULL_DATA. Wartość danych ma wartość NULL, a sterownik ignoruje wartość powiązanej zmiennej.
SQL_DATA_AT_EXEC lub wynik makra SQL_LEN_DATA_AT_EXEC. Wartość parametru ma zostać wysłana za pomocą funkcji SQLPutData. Aby uzyskać więcej informacji, zobacz Wysyłanie długich danych w dalszej części tej sekcji.
W poniższej tabeli przedstawiono wartości zmiennej powiązanej oraz bufor długości/wskaźnika ustawiany przez aplikację dla różnych wartości parametrów.
| Parameter value |
Parameter (SQL) typ danych |
Zmienna (C) typ danych |
Wartość w granica zmienna |
Wartość w długość/wskaźnik buffer[d] |
|---|---|---|---|---|
| "ABC" | SQL_CHAR | SQL_C_CHAR | ABC\0[a] | SQL_NTS lub 3 |
| 10 | SQL_INTEGER | SQL_C_SLONG | 10 | -- |
| 10 | SQL_INTEGER | SQL_C_CHAR | 10\0[a] | SQL_NTS lub 2 |
| 13:00 | SQL_TYPE_TIME | SQL_C_TYPE_TIME | 13,0,0[b] | -- |
| 13:00 | SQL_TYPE_TIME | SQL_C_CHAR | {t '13:00:00'}\0[a], [c] | SQL_NTS lub 14 |
| ZERO | SQL_SMALLINT | SQL_C_SSHORT | -- | SQL_NULL_DATA |
[a] "\0" reprezentuje znak zakończenia o wartości null. Znak końca null jest wymagany tylko wtedy, gdy wartość w buforze długości/wskaźnika to SQL_NTS.
[b] Liczby na tej liście to liczby przechowywane w polach struktury TIME_STRUCT.
[c] Ciąg używa klauzuli ucieczki daty ODBC. Aby uzyskać więcej informacji, zobacz Literały daty, godziny i sygnatury czasowej.
[d] Sterowniki muszą zawsze sprawdzać tę wartość, aby sprawdzić, czy jest to wartość specjalna, taka jak SQL_NULL_DATA.
To, co sterownik robi z wartością parametru w czasie wykonywania, jest zależne od sterownika. W razie potrzeby sterownik konwertuje wartość z typu danych C i długości bajtów powiązanej zmiennej na typ danych SQL, precyzję i skalę parametru. W większości przypadków sterownik wysyła wartość do źródła danych. W niektórych przypadkach formatuje wartość jako tekst i wstawia ją do instrukcji SQL przed wysłaniem instrukcji do źródła danych.