#c #postgresql #unicode #odbc #ascii
#c #postgresql #юникод #odbc #ascii
Вопрос:
Я пытаюсь подключить сервер БД (postgresql) к двум другим программам. одна программа подключается хорошо, но другая программа не может подключиться к odbc. Интересно, почему эта строка «UNICODE ~~~ UCS-2LE» напечатана. и как исправить не подключенную программу.
———— успешное подключение ————-
[ODBC][164734][1601017650.697151][SQLDriverConnect.c][701]
Entry:
Connection = 0x7031f0
Window Hdl = (nil)
Str In = [ODBC;DSN=MyPostgres;UID=pgadmin;PWD=***********][length = 50 (SQL_NTS)]
Str Out = 0x7ffe23bd3ef0
Str Out Max = 1024
Str Out Ptr = 0x7ffe23bd3eec
Completion = 0
UNICODE Using encoding ASCII 'ISO8859-1' and UNICODE 'UCS-2LE'
[ODBC][164734][1601017650.703341][SQLDriverConnect.c][1560]
Exit:[SQL_SUCCESS]
———— сбой соединения ————
[ODBC][164812][1601018015.020875][SQLDriverConnect.c][748]
Entry:
Connection = 0x1c07b30
Window Hdl = (nil)
Str In = [ODBC;DSN=MyPostgres;UID=pgadmin;PWD=***********][length = 50 (SQL_NTS)]
Str Out = 0x7fffd28b6bb0
Str Out Max = 1024
Str Out Ptr = 0x7fffd28b6bac
Completion = 0
[ODBC][164812][1601018015.020905][SQLDriverConnect.c][1239]
Error: IM002
Комментарии:
1. Сообщение Unicode печатается при успешном подключении, так почему вы пытаетесь это исправить?
2. В любом случае ваше соединение почти наверняка завершается с ошибкой, потому что ваши настройки соединений каким-то образом неверны. Не зная более подробной информации о вашей среде и методе, который вы используете для подключения, трудно помочь.
3. Посмотрите это . Я не вижу здесь кода C , но для ошибок ODBC вы должны вызывать функцию SQLGetDiagRec .
4. большое вам спасибо. ‘SQLGetDiagRec’ заставляет меня решить проблему.