проблема с подключением к odbc.(UNICODE с использованием кодировки ASCII)

#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’ заставляет меня решить проблему.