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.
Datové typy SQL Unicode jsou k dispozici k popisu dat, která se nacházejí v kódování Unicode nativně v DBMS. K dispozici je datový typ C Unicode, který aplikaci umožní svázat data s vyrovnávací pamětí Unicode. Správce ovladačů může převést data z typu Unicode C (SQL_C_WCHAR), aby fungovala s ovladačem ANSI.
Aplikace ODBC 3.0 nebo 2.x se vždy váže na datové typy ANSI. Pro zajištění optimálního výkonu by aplikace ODBC 3.5 (nebo vyšší) měla být svázána s datovým typem ANSI, pokud je typ sloupce SQL ANSI, a měla by být svázána s datovým typem Unicode C, pokud je typ sloupce SQL Unicode.
Indikátory typu SQL Unicode jsou SQL_WCHAR, SQL_WVARCHAR a SQL_WLONGVARCHAR. SQL_WCHAR data má pevnou délku řetězce, zatímco SQL_WVARCHAR má proměnnou délku s deklarovaným maximem a SQL_WLONGVARCHAR má proměnnou délku s maximem, které závisí na zdroji dat.
Indikátor typu C Unicode je SQL_C_WCHAR. Toto je výchozí nastavení pro každý indikátor typu jazyka SQL Unicode. Všechny typy SQL je možné převést na SQL_C_WCHAR a SQL_C_WCHAR lze převést na všechny typy SQL. Aplikace může načítat data jedním ze tří způsobů:
Načtěte data jako SQL_C_CHAR.
Načítejte data jako SQL_C_WCHAR.
Deklarujte data jako SQL_C_TCHAR. Toto je makro, které vloží SQL_C_WCHAR, pokud je aplikace zkompilována jako aplikace Unicode nebo vloží SQL_C_CHAR, pokud je zkompilována jako aplikace ANSI.
SQL_C_TCHAR je deklarován ve funkci následujícím způsobem:
SQLBindParameter(StatementHandle, 1, SQL_PARAM_INPUT, SQL_C_TCHAR, SQL_WCHAR, NameLen, 0, Name, 0, &Name)
Pokud je aplikace zkompilována jako aplikace Unicode, argument ValueType by se změnil z SQL_C_TCHAR na SQL_C_WCHAR. Při kompilaci aplikace jako aplikace ANSI by byl argument ValueType změněn na SQL_C_CHAR.
Ovladače Unicode musí i nadále podporovat datové typy ANSI, včetně SQL_CHAR. Pokud aplikace pracující s ovladačem Unicode vytvoří vazbu na SQL_CHAR, správce ovladačů nenamapuje data SQL_CHAR na SQL_WCHAR. Ovladač Unicode musí přijímat data SQL_CHAR.
Správce ovladačů ukládá názvy ovladačů a DSN v kódu Unicode a podle potřeby je mapuje na ANSI. Pokud nelze namapovat znak Unicode na znak ANSI (může k tomu dojít, pokud se znaky ze znakové stránky, která není nativní znakovou stránkou počítače, používají v názvech ovladačů a DSN), znaky, které nelze převést, jsou reprezentovány výchozím znakem zadaným systémem.