ODBC: Character conversion and Data Direct driver manager
Details
| Detail name | Value |
|---|---|
| Changelog Number | 13228 |
| Type | Bug |
| Status | Resolved |
| Affected Versions | Exasol 7.0.0 |
| Fix Versions | Exasol 8.0.0, Exasol 7.1.10 |
| Resolution Date | 2022-04-20 |
Background
The Exasol ODBC Driver supports the Microsoft ODBC specific UTF-16 and the Data Direct driver manager specific UTF-8 unicode strings for ODBC unicode functions ("W" functions). The "DriverUnicodeType" connection string attribute can be used to switch between UTF-8 and UTF-16 unicode strings.
Description
When “DriverUnicodeType=2” is specified in the connection string or if this mode was set by the Data Direct driver manager, the ODBC driver incorrectly sets all arguments of non-unicode functions to UTF-8.
Workaround
There is no workaround.
Fix
The "DriverUnicodeType" parameter matches the SQL_ATTR_DRIVER_UNICODE_TYPE from the Data Direct documentation and no longer impacts non-unicode functions in ODBC.
Applications which use UTF-8 strings in non-unicode ("W") functions must now setlocale() or use the connection string parameter "ConnectionLCCtype" so that the locale settings in the console match the data sent by the application.
Changed behavior
Applications which use UTF-8 strings in non-unicode ("W") functions must now setlocale() or use the connection string parameter "ConnectionLCCtype" so that the locale settings in the console match the data sent by the application.