nanodbc подключается к MSSQL из Linux

Я получаю «Неверное значение атрибута» при попытке подключиться к MSSQL из Linux.

Мой текущий файл /etc/odbcinst.ini выглядит следующим образом:

[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.1.so.0.1
Trace=yes
TraceFile=/home/mercury/Desktop/tracefile.txt
UsageCount=1

[ODBC Driver 13 for SQL Server]
Description=Microsoft ODBC Driver 13 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.1.so.9.2
UsageCount=1

Мой файл /etc/odbc.ini выглядит следующим образом (информация удалена):

[TestServer]
Driver = ODBC Driver 17 for SQL Server
Server = $IP, $PORT
Database = $DATABASE
UserName = $Username
Password = $Password

Если я запускаю isql, я могу подключиться с помощью этой команды:

isql -v TestServer $Username $Password

Перед тем, как установить соединение с nanodbc, я распечатаю строку подключения, которая будет использоваться:

DRIVER={ODBC Driver 17 for SQL Server};SERVER=$Server,$Port;DATABASE=$Database;Uid=$Username;Pwd=$Password

Я тогда делаю:
nanodbc :: соединение (ConnectionString); где я получаю

[unixODBC][Driver Manager]Invalid attribute value

сообщение об ошибке.

2

Решение

Так что после ДЕЙСТВИТЕЛЬНО долгого времени это стало проблемой с Ubuntu 16.04.
unixodbc в Ubuntu 16.04 сообщает, что его версия неверна, поэтому при компиляции nanodbc он использует неверную версию unixodbc.
Чтобы это исправить, перекомпилируйте nanodbc с этим флагом cmake на:
Например:

mkdir build
cd build && cmake .. -DNANODBC_ODBC_VERSION=SQL_OV_ODBC3

Это исправило проблему для меня.
Для дальнейшего использования этот билет был ответом: https://github.com/lexicalunit/nanodbc/issues/149

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]