Непонятки с ODBC и юникодом
Добавлено: 21 фев 2009, 11:36
Проблема следующая. Подключаюсь к ODBC-драйверу, без указания кодировки в строке подключения. Далее после всяких инициализаций вызываю функцию SQLExecDirectW, в которую в качестве sql-запроса передаю запрос, содержащий русские буквы в текстовых параметрах (естественно, сам запрос состоит из двубайтовых символов wchar_t). На такой запрос драйвер отвечает ошибкой:
Почему при вызове SQLExecDirectW ODBC-драйвер не перетранслирует двухбайтный юникод в кодировку базы данных?
PS: если при подключении указать кодировку WIN1251, то всё работает (хотя не понятно почему это работает).
WinXP RUS SP3
ODBC-драйвер 2.0.0.148
Firebird 2.1.1.17910-0
База данных в кодировке utf8
Если русские символы в запросе не содержатся, то запрос отрабатывает нормально. Что самое интересное, возврат результата запроса, содержащего русские буквы, проходит без проблем.[ODBC Firebird Driver][Firebird]Malformed string
Почему при вызове SQLExecDirectW ODBC-драйвер не перетранслирует двухбайтный юникод в кодировку базы данных?
PS: если при подключении указать кодировку WIN1251, то всё работает (хотя не понятно почему это работает).
WinXP RUS SP3
ODBC-драйвер 2.0.0.148
Firebird 2.1.1.17910-0
База данных в кодировке utf8