skip to main content
Internationalization, Localization, and Unicode : Unicode and Non-Unicode ODBC Drivers : Function Calls
  
Function Calls
Instead of the standard ANSI SQL function calls, such as SQLConnect, Unicode applications use "W" (wide) function calls, such as SQLConnectW. If the driver is a true Unicode driver, it can understand "W" function calls and the Driver Manager can pass them through to the driver without conversion to ANSI. The DataDirect Connect Series for ODBC drivers that support "W" function calls are:
*The Driver for Apache Hive
*DB2 Wire Protocol
*Greenplum Wire Protocol
*Impala Wire Protocol
*MySQL Wire Protocol
*Oracle Wire Protocol
*Oracle
*PostgreSQL Wire Protocol
*Progress OpenEdge® Wire Protocol
*Salesforce
*SQL Server Wire Protocol
*SQL Server Legacy Wire Protocol (UNIX only)
*Sybase Wire Protocol
*Sybase IQ Wire Protocol
*Teradata
*XML
If the driver is a non-Unicode driver, it cannot understand W function calls, and the Driver Manager must convert them to ANSI calls before sending them to the driver. The Driver Manager determines the ANSI encoding system to which it must convert by referring to a code page. On Windows, this reference is to the Active Code Page. On UNIX and Linux, it is to the IANAAppCodePage connection string attribute, part of the odbc.ini file.
The following examples illustrate these conversion streams for the DataDirect Connect for ODBC drivers. The Driver Manager on UNIX and Linux prior to DataDirect Connect for ODBC Release 5.0 assumes that Unicode applications and Unicode drivers use the same encoding (UTF-8). For the DataDirect Connect Series for ODBC Release 5.0 and higher on UNIX and Linux, the Driver Manager determines the type of Unicode encoding of both the application and the driver, and performs conversions when the application and driver use different types of encoding. This determination is made by checking two ODBC environment attributes: SQL_ATTR_APP_UNICODE_TYPE and SQL_ATTR_DRIVER_UNICODE_TYPE. Driver Manager and Unicode Encoding on UNIX/Linux describes in detail how this is done.
* Unicode Application with a Non-Unicode Driver
* Unicode Application with a Unicode Driver