Aracılığıyla paylaş


Unicode Sürücüleri

Bir sürücünün Unicode sürücüsü mü yoksa ANSI sürücüsü mü olması tamamen veri kaynağının doğasına bağlıdır. Veri kaynağı Unicode verilerini destekliyorsa, sürücü bir Unicode sürücüsü olmalıdır. Veri kaynağı yalnızca ANSI verilerini destekliyorsa, sürücü ANSI sürücüsü olarak kalmalıdır.

Bir Unicode sürücüsünün Sürücü Yöneticisi tarafından Unicode sürücüsü olarak tanınması için SQLConnectW'yi dışarı aktarması gerekir.

Unicode sürücüsünün Unicode işlevlerini ( W soneki ile) kabul etmesi ve Unicode verilerini depolaması gerekir. ANSI işlevlerini de kabul edebilir, ancak bunu yapmak gerekli değildir. (Sürücü Yöneticisi, bir ANSI işlev çağrısını sürücüye A soneki ile geçirmez, ancak sonek olmadan bir ANSI işlev çağrısına dönüştürür ve ardından sürücüye geçirir.)

Unicode sürücüsünün, uygulamanın bağlamasına bağlı olarak sonuç kümelerini Unicode veya ANSI olarak döndürebilmesi gerekir. Uygulama SQL_C_CHAR bağlarsa, Unicode sürücüsünün SQL_WCHAR verileri SQL_CHAR dönüştürmesi gerekir. Sürücü yöneticisi, ANSI sürücüleri için SQL_C_WCHAR'ı SQL_C_CHAR olarak eşler, ancak Unicode sürücüleri için bir eşleme gerçekleştirmez.

Uyarı

Sürücü türünü belirlerken, Driver Manager SQLSetConnectAttr'i çağırır ve bağlantı zamanında SQL_ATTR_ANSI_APP özniteliğini ayarlar. Uygulama ANSI API'leri kullanıyorsa SQL_ATTR_ANSI_APP SQL_AA_TRUE olarak ayarlanır ve Unicode kullanıyorsa SQL_AA_FALSE değerine ayarlanır. Bu öznitelik, sürücünün uygulama türüne göre farklı davranışlar sergileyebilmesi için kullanılır. Özniteliği uygulama tarafından doğrudan ayarlanamaz ve SQLGetConnectAttr tarafından desteklenmez. Bir sürücü hem ANSI hem de Unicode uygulamaları için aynı davranışı sergilerse, bu öznitelik için SQL_ERROR döndürmelidir. Sürücü SQL_SUCCESS döndürürse, Bağlantı Havuzu kullanıldığında Sürücü Yöneticisi ANSI ve Unicode bağlantılarını ayırır.