Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (Français) » SQL Anywhere Server - Programming » ODBC support » Building ODBC applications


Using a UTF-32 ODBC driver manager on Unix

Versions of ODBC driver managers that define SQLWCHAR as 32-bit (UTF-32) quantities cannot be used with the SQL Anywhere ODBC driver that supports wide calls since this driver is built for 16-bit SQLWCHAR. For these cases, an ANSI-only version of the SQL Anywhere ODBC driver is provided. This version of the ODBC driver does not support the wide call interface (e.g., SQLConnectW).

The shared object name of the driver is libdbodbcansi12_r. Only a threaded variant of the driver is provided. On Mac OS X, in addition to the dylib, the driver is also available in bundle form (dbodbcansi12_r.bundle). Certain frameworks, such as Real Basic, do not work with the dylib and require the bundle.

Our regular ODBC driver treats SQLWCHAR strings as UTF-16 strings. This driver can not be used with some ODBC driver managers, such as iODBC, which treat SQLWCHAR strings as UTF-32 strings. When dealing with Unicode-enabled drivers, these driver managers translate narrow calls from the application to wide calls into the driver. An ANSI-only driver gets around this behavior, allowing the driver to be used with such driver managers, as long as the application does not make any wide calls. Wide calls through iODBC, or any other driver manager with similar semantics, remain unsupported.