SQLBindParameter

platí pro:SQL ServerAzure SQL Databaseazure SQL Managed Instanceazure Synapse Analytics

SQLBindParameter může odstranit zátěž spojené s převodem dat, když je použit k poskytování dat pro ovladač SQL Server Native Client ODBC, což vede k významnému zlepšení výkonu jak pro klient, tak pro serverové komponenty aplikací. Mezi další výhody patří snížená ztráta přesnosti při vkládání nebo aktualizaci přibližných číselných datových typů.

Note

Při vkládání dat typu char a wchar do sloupce obrázku se používá velikost předávaných dat, na rozdíl od velikosti dat po převodu do binárního formátu.

Pokud ovladač ODBC nativního klienta SQL Server narazí na chybu na jednom prvku pole v poli parametrů, ovladač pokračuje ve vykonávání příkazu pro zbývající prvky pole. Pokud aplikace ohraničila pole stavových prvků parametrů pro daný příkaz, lze z pole určit řádky parametrů generujících chyby.

Při použití ovladače SQL Server Native Client ODBC specifikujte SQL_PARAM_INPUT při vázání vstupních parametrů. Specifikujte pouze SQL_PARAM_OUTPUT nebo SQL_PARAM_INPUT_OUTPUT při vázání parametrů uložených procedur definovaných klíčovým slovem OUTPUT.

SQLRowCount je nespolehlivý s nativním klientským ODBC ovladačem SQL Server, pokud některý z prvků pole s bound-parametry způsobí chybu při provádění příkazu. Atribut příkazu ODBC SQL_ATTR_PARAMS_PROCESSED_PTR hlásí počet zpracovaných řádků před chybou. Aplikace pak může procházet své pole stavů parametrů, aby zjistila počet úspěšně vykonaných příkazů, pokud je to nutné.

Vazby parametrů pro SQL znaky

Pokud je předaný SQL datový typ typ znaku, ColumnSize je velikost ve znacích (nikoli v bajtech). Pokud je délka datového řetězce v bajtech větší než 8000, měla by být ColumnSize nastavena na SQL_SS_LENGTH_UNLIMITED, což naznačuje, že velikost SQL typu není omezena.

Například pokud je typ dat SQL SQL_WVARCHAR, ColumnSize by neměl být větší než 4000. Pokud je skutečná délka dat větší než 4000, měl by být ColumnSize nastaven na SQL_SS_LENGTH_UNLIMITED , aby ovladač použil nvarchar(max ).

Parametry SQLBindParameter a Table-Valued

Stejně jako jiné typy parametrů jsou tabulkové parametry omezeny SQLBindParametrem.

Po omezení parametru s tabulkovou hodnotou jsou omezeny i jeho sloupce. Pro svázání sloupců voláte SQLSetStmtAttr a nastavíte SQL_SOPT_SS_PARAM_FOCUS na ordinál parametru s tabulkovou hodnotou. Poté zavolejte SQLBindParameter pro každý sloupec v parametru tabulkové hodnoty. Pro návrat k vazbám parametrů nejvyšší úrovně nastavte SQL_SOPT_SS_PARAM_FOCUS na 0.

Pro informace o mapování parametrů na deskriptorová pole pro tabulkové parametry viz Binding and Data Transfer of Table-Valued Parameters and Column Values.

Pro více informací o tabulkových parametrech viz Table-Valued Parametry (ODBC).

Podpora SQLBindParameter pro vylepšené funkce data a času

Hodnoty parametrů typů data a času jsou převedeny, jak je popsáno v Převody z jazyka C na SQL. Všimněte si, že parametry typu čas a datetimeoffset musí mít ValueType zadanou jako SQL_C_DEFAULT nebo SQL_C_BINARY , pokud jsou použity jejich odpovídající struktury (SQL_SS_TIME2_STRUCT a SQL_SS_TIMESTAMPOFFSET_STRUCT).

Další informace naleznete v tématu vylepšení data a času (ODBC).

Podpora SQLBindParameter pro velké CLR UDT

SQLBindParameter podporuje velké uživatelsky definované typy CLR (UDT). Další informace najdete v tématuVelké typy User-Defined CLR (ODBC).