Добрый день!
Ах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 такой ошибки нет.