Condividi tramite


Applicazioni Unicode

È possibile ricompilare un'applicazione come applicazione Unicode in uno dei due modi seguenti:

  • Includere il #define Unicode contenuto nel file di intestazione Sqlucode.h nell'applicazione.

  • Compilare l'applicazione con l'opzione Unicode del compilatore. (Questa opzione sarà diversa per i vari compilatori.)

Per convertire un'applicazione ANSI in un'applicazione Unicode, scrivere l'applicazione per archiviare e passare dati Unicode. Inoltre, le chiamate alle funzioni che supportano gli argomenti SQLPOINTER devono essere convertite per usare il conteggio dei byte.

Dopo che un'applicazione viene compilata come applicazione Unicode, se l'applicazione chiama una funzione API ODBC (senza un suffisso), Gestione driver riconosce l'applicazione come applicazione Unicode e converte la chiamata di funzione a una funzione Unicode (con il suffisso W) se il driver sottostante supporta Unicode. Quando un'applicazione ANSI effettua una chiamata di funzione senza un suffisso, Gestione driver la converte in ANSI se il driver sottostante supporta ANSI. Se l'applicazione e il driver supportano la stessa codifica dei caratteri, Gestione driver passa le chiamate al driver (con determinate eccezioni per le applicazioni ANSI).

Un'applicazione può chiamare sia le funzioni Unicode (con il suffisso W) che le funzioni ANSI (con o senza il suffissoA). Le chiamate di funzione Unicode e ANSI possono essere miste. Tuttavia, se la libreria di cursori deve essere usata, le chiamate di funzione Unicode e ANSI non possono essere miste. La libreria di cursori è Unicode o ANSI, ma non una combinazione dei due.

Un'applicazione può essere scritta in modo che possa essere compilata come applicazione Unicode o applicazione ANSI. In questo caso, i tipi di dati di tipo carattere possono essere dichiarati come SQL_C_TCHAR. Si tratta di una macro che inserisce SQL_C_WCHAR se l'applicazione viene compilata come applicazione Unicode o inserisce SQL_C_CHAR se viene compilata come applicazione ANSI. Il programmatore dell'applicazione deve prestare attenzione alle funzioni che accettano SQLPOINTER come argomento, perché le dimensioni dell'argomento lunghezza cambieranno (per i tipi di dati di stringa) a seconda che l'applicazione sia ANSI o Unicode.

Una funzione può essere chiamata in uno dei tre modi seguenti: come chiamata di funzione solo Unicode (con il suffisso W), come chiamata di funzione solo ANSI (con il suffisso A) o come chiamata di funzione ODBC senza suffisso. Gli argomenti delle tre forme di una funzione sono identici. Solo queste funzioni con argomenti SQLCHAR * o argomenti SQLPOINTER che puntano alle stringhe richiedono moduli Unicode e ANSI. Per le funzioni con argomenti che possono essere dichiarati come tipo di carattere, ad esempio SQLBindCol o SQLGetData (che non dispongono di moduli Unicode e ANSI), l'argomento può essere dichiarato come tipo Unicode, tipo ANSI o, nel caso di un argomento di tipo C, macro SQL_C_TCHAR. Per altre informazioni, vedere Dati Unicode.

Un'applicazione può essere scritta come applicazione Unicode anche se non sono disponibili driver Unicode con cui possa lavorare. Gestione driver eseguirà il mapping di funzioni Unicode e tipi di dati ad ANSI. Esistono alcune restrizioni per i mapping di Unicode ad ANSI che possono essere eseguiti. L'esistenza di un driver Unicode con cui l'applicazione Unicode possa lavorare comporterà prestazioni migliori e rimuoverà le restrizioni intrinseche nei mapping di Unicode ad ANSI.