Driver di Unicode

Se un driver deve 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 i 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 suffisso W) e archiviare i dati Unicode. Può anche accettare funzioni ANSI, ma non è necessario. Gestione driver non passa al driver una chiamata di funzione ANSI con il suffisso A, ma la converte in una chiamata di funzione ANSI senza il suffisso e 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 SQL_C_CHAR, il driver Unicode deve convertire SQL_WCHAR dati in SQL_CHAR. Gestione driver esegue il mapping SQL_C_WCHAR a SQL_C_CHAR driver ANSI, ma non esegue il mapping per i driver Unicode.

Nota

Quando si determina il tipo di driver, Gestione driver chiamerà SQLSetConnectAttr e imposta l'attributo SQL_ATTR_ANSI_APP in fase di connessione. Se l'applicazione usa API ANSI, SQL_ATTR_ANSI_APP verrà impostato su SQL_AA_TRUE e, se usa Unicode, verrà impostato sul valore 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 separerà le connessioni ANSI e Unicode quando viene usato il pool di connessioni.