Показать сообщение отдельно
Старый 02.02.2015, 15:19   #13  
Denicce is offline
Denicce
Участник
 
62 / 54 (2) ++++
Регистрация: 22.03.2005
Адрес: Москва
Вопрос по соединению с PostgreSQL
Добрый день!
Ах2012R2
Подключаюсь к БД PostgreSQL через ODBCConnection:
X++:
server static void main(Args _args)
{
    OdbcConnection      connection;
    LoginProperty       login;
    ;

    login = new LoginProperty();
    login.setDSN('PostgreSQL-Test');
    connection = new OdbcConnection(login);

    if (!connection)
    {
        checkFailed("Ошибка при создании соединения");
    }
}
Выполнение на стороне сервера, настроено соотв. ODBC соединение на базе драйверов "PostgreSQL Unicode x64" v.9.03.03.
Соединение устанавливается и запросы работают, но при вызове new OdbcConnection(login) выдается сообщение об ошибке:
Код:
Невозможно выполнить требуемую операцию с базой данных.
База данных SQL обнаружила ошибку.
ERROR: syntax error at or near "@";
Error while executing the query. The SQL statement was: "declare @CONTEXT_INFO varbinary(128); select @CONTEXT_INFO = CAST (' kird 56 ODBC - read-only 0' as varbinary(128) );set CONTEXT_INFO @CONTEXT_INFO"
В PostgreSQL другие средства установки аналога CONTEXT_INFO, однако, похоже, new об этом не знает и пытается запустить данный запрос на базе после установки соединения.
Косметически можно вырезать лишние инфо, процедура работает, запросы отправляются, результаты обрабатываются.
Но хотелось бы как-то дать понять, что не надо устанавливать CONTEXT_INFO. Может, с помощью connectionString или каким-либо другим способом.

P.S.
На клиенте при использовании 32-ти разрядного драйвера ODBC такой ошибки нет.