繁体   English   中英

nanodbc从Linux连接到MSSQL

[英]nanodbc connecting to MSSQL from Linux

尝试从Linux连接到MSSQL时,出现“无效属性值”。

我当前的/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 :: connection(connectionString); 这是我得到的

[unixODBC][Driver Manager]Invalid attribute value

错误信息。

因此,经过很长时间之后,这才成为Ubuntu 16.04的问题。 Ubuntu 16.04上的unixodbc报告其版本错误,因此在编译nanodbc时,它使用了错误的unixodbc版本。 要解决此问题,请使用以下cmake标志重新编译nanodbc:例如:

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

这为我解决了这个问题。 为了将来参考,这张票是答案: https : //github.com/lexicalunit/nanodbc/issues/149

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM