Aplicaciones de Unicode
Puede volver a compilar una aplicación como una aplicación Unicode de una de estas dos maneras:
Incluya el Unicode #define incluido en el archivo de encabezado Sqlucode.h de la aplicación.
Compile la aplicación con la opción Unicode del compilador. (Esta opción será diferente para distintos compiladores.)
Para convertir una aplicación ANSI en una aplicación Unicode, escriba la aplicación para almacenar y pasar datos Unicode. Además, las llamadas a funciones que admiten argumentos SQLPOINTER deben convertirse para usar el recuento de bytes.
Después de compilar una aplicación como una aplicación Unicode, si la aplicación llama a una función de API ODBC (sin un sufijo), el Administrador de controladores reconoce la aplicación como una aplicación Unicode y convierte la llamada de función a una función Unicode (con el sufijo W ) si el controlador subyacente admite Unicode. Cuando una aplicación ANSI realiza una llamada de función sin un sufijo, el Administrador de controladores lo convierte en ANSI si el controlador subyacente admite ANSI. Si tanto la aplicación como el controlador admiten la misma codificación de caracteres, el administrador de controladores pasa las llamadas al controlador (con ciertas excepciones para las aplicaciones ANSI).
Una aplicación puede llamar a ambas funciones Unicode (con el sufijo W ) y las funciones ANSI (con o sin el sufijo A ). Las llamadas a funciones Unicode y ANSI se pueden mezclar. Sin embargo, si se va a usar la biblioteca de cursores, las llamadas a funciones Unicode y ANSI no se pueden mezclar. La biblioteca de cursores es Unicode o ANSI, no una mezcla.
Una aplicación se puede escribir de forma que se pueda compilar como una aplicación Unicode o una aplicación ANSI. En este caso, los tipos de datos de caracteres se pueden declarar como SQL_C_TCHAR. Se trata de una macro que inserta SQL_C_WCHAR si la aplicación se compila como una aplicación Unicode o inserta SQL_C_CHAR si se compila como una aplicación ANSI. El programador de aplicaciones debe tener cuidado con las funciones que toman SQLPOINTER como argumento, ya que el tamaño del argumento longitud cambiará (para los tipos de datos de cadena) en función de si la aplicación es ANSI o Unicode.
Se puede llamar a una función de una de estas tres maneras: como llamada de función de solo Unicode (con el sufijo W ), como una llamada de función de solo ANSI (con el sufijo A ) o como llamada a la función ODBC sin sufijo. Los argumentos de las tres formas de una función son idénticos. Solo esas funciones con argumentos SQLCHAR * o argumentos SQLPOINTER que apuntan a cadenas requieren formularios Unicode y ANSI. En el caso de las funciones que tienen argumentos que se pueden declarar como un tipo de carácter, como SQLBindCol o SQLGetData (que no tienen formularios Unicode y ANSI), el argumento se puede declarar como el tipo Unicode, el tipo ANSI o, en el caso de un argumento de tipo C, la macro SQL_C_TCHAR. Para obtener más información, vea Datos Unicode.
Una aplicación se puede escribir como una aplicación Unicode aunque no haya controladores Unicode disponibles para que funcione. El Administrador de controladores asignará funciones Unicode y tipos de datos a ANSI. Hay algunas restricciones para las asignaciones Unicode a ANSI que se pueden realizar. La existencia de un controlador Unicode para que la aplicación Unicode funcione con dará como resultado un mejor rendimiento y quitará las restricciones inherentes a las asignaciones de Unicode a ANSI.