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.
Aplikaci můžete překompilovat jako aplikaci Unicode jedním ze dvou způsobů:
Zahrňte kód Unicode #define obsažený v souboru hlavičky Sqlucode.h v aplikaci.
Zkompilujte aplikaci pomocí možnosti Unicode kompilátoru. (Tato možnost se bude lišit pro různé kompilátory.)
Chcete-li převést aplikaci ANSI na aplikaci Unicode, napište aplikaci pro ukládání a předávání dat Unicode. Kromě toho je nutné převést volání funkcí, které podporují argumenty SQLPOINTER, na použití počtu bajtů.
Jakmile je aplikace zkompilována jako aplikace Unicode, pokud aplikace volá funkci ROZHRANÍ ODBC API (bez přípony), Správce ovladačů rozpozná aplikaci jako aplikaci Unicode a převede volání funkce na funkci Unicode (s příponou W ), pokud podkladový ovladač podporuje Unicode. Když aplikace ANSI volá funkci bez přípony, Správce ovladačů ji převede na ANSI, pokud podkladový ovladač podporuje ANSI. Pokud aplikace i ovladač podporují stejné kódování znaků, správce ovladačů předá volání ovladači (s některými výjimkami pro aplikace ANSI).
Aplikace může volat obě funkce Unicode (s příponou W ) i funkce ANSI (s příponou A nebo bez). Volání funkcí Unicode a ANSI je možné kombinovat. Pokud je však použita knihovna kurzorů, volání funkcí Unicode a ANSI nelze kombinovat. Knihovna kurzorů je buď Unicode, nebo ANSI, nikoli směs.
Aplikaci lze napsat tak, aby ji bylo možné zkompilovat jako aplikaci Unicode nebo aplikaci ANSI. V tomto případě lze datové typy znaků deklarovat 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. Programátor aplikace musí být opatrní u funkcí, které jako argument přebírají SQLPOINTER, protože velikost argumentu délky se změní (pro datové typy řetězců) v závislosti na tom, zda je aplikace ANSI nebo Unicode.
Funkci lze volat jedním ze tří způsobů: jako volání funkce jen s kódováním Unicode (s příponou W ), jako volání funkce jen ANSI (s příponou A ) nebo jako volání funkce ODBC bez přípony. Argumenty tří forem funkce jsou identické. Pouze tyto funkce s argumenty SQLCHAR * nebo argumenty SQLPOINTER, které odkazují na řetězce, vyžadují formuláře Unicode a ANSI. Pro funkce, které mají argumenty, které lze deklarovat jako typ znaku, například SQLBindCol nebo SQLGetData (které nemají formuláře Unicode a ANSI), lze argument deklarovat jako typ Unicode, typ ANSI nebo v případě argumentu typu jazyka C SQL_C_TCHAR makro. Další informace najdete v tématu Data unicode.
Aplikaci lze zapsat jako aplikaci Unicode, i když nejsou k dispozici žádné ovladače Unicode, se kterými může pracovat. Správce ovladačů mapuje funkce Unicode a datové typy na ANSI. Existují určitá omezení mapování Unicode na ANSI, která je možné provést. Existence ovladače Unicode pro aplikaci Unicode, která má pracovat s, bude mít za následek lepší výkon a odebere omezení spojená s mapováním Unicode na ANSI.