Condividi tramite


Driver di Unicode

Il fatto che un driver debba essere un driver Unicode o un driver ANSI dipende interamente dalla natura dell'origine dati. Se l'origine dati supporta i dati Unicode, il driver deve essere un driver Unicode. Se l'origine dati supporta solo dati ANSI, il driver deve rimanere un driver ANSI.

Un driver Unicode deve esportare SQLConnectW per essere riconosciuto come driver Unicode da Gestione driver.

Un driver Unicode deve accettare funzioni Unicode (con un suffisso W) e archiviare i dati Unicode. Può anche accettare funzioni ANSI, ma non è necessario. (Gestione driver non passa una chiamata di funzione ANSI con il suffisso A al driver, ma la converte in una chiamata di funzione ANSI senza il suffisso, quindi la passa al driver.)

Un driver Unicode deve essere in grado di restituire set di risultati in Unicode o ANSI, a seconda dell'associazione dell'applicazione. Se un'applicazione viene associata a SQL_C_CHAR, il driver Unicode deve convertire i dati SQL_WCHAR in SQL_CHAR. Gestione driver eseguirà il mapping di SQL_C_WCHAR a SQL_C_CHAR per i driver ANSI, ma non eseguirà il mapping per i driver Unicode.

Nota

Quando si determina il tipo di driver, Gestione driver chiamerà SQLSetConnectAttr e imposterà l'attributo SQL_ATTR_ANSI_APP in fase di connessione. Se l'applicazione usa le API ANSI, SQL_ATTR_ANSI_APP verrà impostata su SQL_AA_TRUE e, se usa Unicode, verrà impostata su un valore di SQL_AA_FALSE. Questo attributo viene usato in modo che il driver possa presentare un comportamento diverso in base al tipo di applicazione. L'attributo non può essere impostato direttamente dall'applicazione e non è supportato da SQLGetConnectAttr. Se un driver presenta lo stesso comportamento per le applicazioni ANSI e Unicode, deve restituire SQL_ERROR per questo attributo. Se il driver restituisce SQL_SUCCESS, Gestione driver separa le connessioni ANSI e Unicode quando si usa il pool di connessioni.