Sdílet prostřednictvím


Ovladače Unicode

Záleží zcela na povaze zdroje dat, jestli má být ovladač typu Unicode nebo typu ANSI. Pokud zdroj dat podporuje data Unicode, ovladač by měl být ovladač Unicode. Pokud zdroj dat podporuje pouze data ANSI, ovladač by měl zůstat ovladačem ANSI.

Ovladač Unicode musí exportovat SQLConnectW, aby ho správce ovladačů rozpoznal jako ovladač Unicode.

Ovladač Unicode musí přijímat funkce Unicode (s příponou W) a ukládat data Unicode. Může také přijímat funkce ANSI, ale nevyžaduje se. (Správce ovladačů nepředá volání funkce ANSI s příponou A ovladači, ale převede ji na volání funkce ANSI bez přípony a pak ji předá ovladači.)

Ovladač Unicode musí být schopen v závislosti na vazbě aplikace vracet sady výsledků v kódování Unicode nebo ANSI. Pokud aplikace vytvoří vazbu na SQL_C_CHAR, ovladač Unicode musí převést SQL_WCHAR data na SQL_CHAR. Správce ovladačů mapuje SQL_C_WCHAR na SQL_C_CHAR pro ovladače ANSI, ale pro ovladače Unicode neprovádí žádné mapování.

Poznámka:

Při určování typu ovladače bude Správce ovladačů volat SQLSetConnectAttr a nastavit SQL_ATTR_ANSI_APP atribut v době připojení. Pokud aplikace používá rozhraní ANSI API, SQL_ATTR_ANSI_APP se nastaví na SQL_AA_TRUE a pokud používá Unicode, nastaví se na hodnotu SQL_AA_FALSE. Tento atribut se používá, aby ovladač mohl vykazovat odlišné chování na základě typu aplikace. Atribut nelze nastavit přímo aplikací a sqlGetConnectAttr ho nepodporuje. Pokud ovladač vykazuje stejné chování pro aplikace ANSI i Unicode, měl by vrátit SQL_ERROR pro tento atribut. Pokud ovladač vrátí SQL_SUCCESS, Správce ovladačů při použití sdružování připojení oddělí připojení ANSI a Unicode.