【发布时间】:2014-05-11 07:08:21
【问题描述】:
我正在尝试使用 nodejs 从 ubuntu (kubuntu 13.04) 连接到 sql server db! (SQL 服务器 2012) 我在看节点odbc .. 所以.. 我开始安装 FreeTds,然后是 unixOdbc,然后启动:npm install odbc
1) 我这样配置文件“etc/freetds/freetds.conf”:
[FreeTDS]
host = gerry_win7
port = 1433
tds_version = 8.0
client charset = UTF-8
2) 安装 sqsh (sudo apt-get install sqsh) 并尝试连接
sqsh -S FreeTDS -U trm1 -P user
并执行查询:完美运行!
3) 然后,我尝试以这种方式配置 ODBC 访问: 文件“/etc/odbcinst.ini”:
[FreeTDS]
Description = TDS driver
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/i386-linux-gnu/odbc/libtdsS.so
CPTimeout =
CPReuse =
FileUsage = 1
文件“/etc/odbc.ini”:
[FreeTDS]
Driver = FreeTDS
Description = ODBC connectin via FreeTDS
Trace = No
Servername = gerry_win7
Database = testsql
UID = trm1
PWD = user
Port = 1433
4) 使用带有 nodejs 的示例代码,我收到以下错误: 代码:
var cn = 'DRIVER={FreeTDS};SERVER=gerry_win7;UID=trm1;PWD=user;DATABASE=testsql';
var Database = require('odbc').Database, db = new Database();
db.open(cn, function(err){
if (err) {return console.log(err);}
});
错误:
[unixODBC][FreeTDS][SQL Server]Unable to connect to data source
[Error: Error opening database]
但是,正如我之前所写的,使用“sqsh”客户端可以进行连接:我可以运行查询! 有人可以帮我理解我做错了什么吗?
【问题讨论】:
-
很可能不是问题,但
tds_version不应该是tds version有空格吗? -
您可能还想在连接字符串中尝试使用
SERVERNAME而不是SERVER。 -
是的对不起..“tds版本”..我在帖子中写错了但在配置文件中是正确的..我试图写SERVERNAME但错误是一样的..跨度>