Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pokud chcete nastavit hodnotu parametru, aplikace jednoduše nastaví hodnotu proměnné vázané na parametr. Není důležité, pokud je tato hodnota nastavena, pokud je nastavena před spuštěním příkazu. Aplikace může nastavit hodnotu před nebo po vytvoření vazby proměnné a může změnit hodnotu tolikrát, kolikrát chce. Při spuštění příkazu ovladač jednoduše načte aktuální hodnotu proměnné. To je zvlášť užitečné, pokud je připravený příkaz proveden více než jednou; aplikace nastaví nové hodnoty pro některé nebo všechny proměnné při každém spuštění příkazu. Příklad najdete v části Připravené spuštění dříve v této části.
Pokud byla vyrovnávací paměť délky/indikátoru vázána ve volání SQLBindParameter, musí být před spuštěním příkazu nastavena na jednu z následujících hodnot:
Délka bajtu dat v vázané proměnné. Ovladač zkontroluje tuto délku pouze v případě, že je proměnná znak nebo binární (ValueType je SQL_C_CHAR nebo SQL_C_BINARY).
SQL_NTS. Data jsou řetězec ukončený hodnotou null.
SQL_NULL_DATA. Datová hodnota je NULL a ovladač ignoruje hodnotu vázané proměnné.
SQL_DATA_AT_EXEC nebo výsledek makra SQL_LEN_DATA_AT_EXEC. Hodnota parametru je odeslána pomocí SQLPutData. Další informace najdete v části Odesílání dlouhých dat dále v této části.
Následující tabulka ukazuje hodnoty vázané proměnné a vyrovnávací paměti délky/ukazatele, kterou aplikace nastaví pro různé hodnoty parametrů.
| Parameter value |
Parameter (SQL) datový typ |
Proměnná (C) datový typ |
Hodnota v mez proměnná |
Hodnota v délka/indikátor buffer[d] |
|---|---|---|---|---|
| "ABC" | SQL_CHAR | SQL_C_CHAR | ABC\0[a] | SQL_NTS nebo 3 |
| 10 | SQL_INTEGER | SQL_C_SLONG | 10 | -- |
| 10 | SQL_INTEGER | SQL_C_CHAR | 10\0[a] | SQL_NTS nebo 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 nebo 14 |
| NULA | SQL_SMALLINT | SQL_C_SSHORT | -- | SQL_NULL_DATA |
[a] \0 představuje znak ukončení s hodnotou null. Znak ukončení s hodnotou null je vyžadován pouze v případě, že je hodnota v vyrovnávací paměti délky nebo indikátoru SQL_NTS.
[b] Čísla v tomto seznamu jsou čísla uložená v polích struktury TIME_STRUCT.
[c] Řetězec používá klauzuli úniku data ODBC. Další informace najdete v části Literály data, času a časového razítka.
[d] Ovladače musí vždy zkontrolovat tuto hodnotu a zjistit, zda se jedná o zvláštní hodnotu, například SQL_NULL_DATA.
To, co ovladač dělá s hodnotou parametru v době provádění, je závislý na ovladači. V případě potřeby ovladač převede hodnotu z datového typu C a délku bajtu vázané proměnné na datový typ SQL, přesnost a měřítko parametru. Ve většině případů ovladač odešle hodnotu do zdroje dat. V některých případech formátuje hodnotu jako text a vloží ji do příkazu SQL před odesláním příkazu do zdroje dat.