我花了一两天的时间在ubuntu12上设置unixODBC和freetds --这本身并不是一个有趣的过程,但它现在可以同时使用sqsh和isql了。我已经安装了node-odbc,并且正在使用github readme中提供的代码片段来测试连接,但是我总是得到
S1000:1:0:[unixODBC][FreeTDS][SQL Server]Unable to connect to data source
WARNING: ev_unref is deprecated, use uv_unref
[Error: Error opening database]使用isql我运行isql -v SERVER user pass (使用正确的证书)一旦连接了use DATABASE,它就可以正常工作了,我可以很好地运行查询。我在js中的连接字符串是
"DRIVER={FreeTDS};SERVER=SERVER;UID=user;PWD=pass;DATABASE=DATABASE"这与用于连接isql的凭据完全匹配,但在Node中我得到了前面提到的错误。你知道为什么会发生这样的事情吗?有没有可能做我的odbc.ini和odbcinst.ini文件的位置或类似的事情?
仅供参考:
/etc/odbc.ini:
[SERVER]
Driver = FreeTDS
Trace = No
Server = SERVER
Port = 1433
Database = DATABASE
UsageCount = 1
TDS_Version = 7.0/etc/odbcinst.ini:
[FreeTDS]
Description = FreeTDS
Driver = /usr/lib/libtdsodbc.so
Setup = /usr/lib/libtdsS.so
FileUsage = 1
CPTimeout = 5
CPReuse = 20
Threading = 1提前感谢您的帮助!
发布于 2012-07-10 22:23:15
看起来我刚刚找到了一个解决方案,尽管我不完全理解为什么。如果使用的连接字符串为:
"DRIVER={FreeTDS};SERVER=SERVER;UID=user;PWD=pass;DATABASE=DATABASE"然后,由于某些原因,它根本不起作用,我尝试使用设置服务器作为IP和machine...no幸运的实际名称。但是,如果我将连接字符串更改为使用SERVERNAME或DSN (字符串中只能有SERVER、SERVERNAME或DNS中的一个),并且我提供了计算机名称,则它工作正常,无论我如何尝试,都无法使其与IP一起工作。因此,简而言之,适用于我的连接字符串是:
"DRIVER={FreeTDS};SERVERNAME=SERVERNAME;UID=user;PWD=pass;DATABASE=DATABASE"这个问题的关键似乎在于SQLDriverConnect。
发布于 2012-11-03 02:43:31
今天遇到了这个问题,结果是我需要指定一个端口号作为连接字符串的一部分。仅供参考。
https://stackoverflow.com/questions/11414302
复制相似问题