遇到node.js中的node-sqlserver问题

我在使用node.js中的Microsoft使用node-sqlserver时,无法连接到networking上的计算机上的数据库。 我在Windows 2008服务器上使用SQL Server 2008。 我在同一个域内的不同机器上远程运行我的node.js。 我认为这个问题与连接string有关。

var sql = require('node-sqlserver'); var conn_str = 'Driver={SQL Server Native Client 10.0};Server=(win08-srv);Database=DB;Trusted_Connection={Yes}'; 

此外,应该有用户名和密码才能进入数据库,但是这不在节点模块的示例连接string中。

 //open the DB connection sql.open(conn_str, function (err, conn) { if (err) { console.log("Error opening the connection!"); return; } else { console.log('Connection successful!'); return; } }); 

始终导致打印Error opening the connection! 运行时。

我有同样的问题。 为了诊断问题,你需要做的第一件事就是将示例代码更改为如下所示:

 sql.open(conn_str, function (err, conn) { if (err) { console.log("Error opening the connection! Error was: " + err); return; } 

一旦我做了上述,我得到了一些关于错误的更多信息。 我的错误是:

 "Error opening the connection! Error: IM002: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified" 

这基本上意味着你已经在连接string中指定了错误的驱动程序。 我通过将驱动程序版本从11.0更改为10.0来解决了我的问题。 您可以通过以下方式查看本地安装的驱动程序(如果您使用的是Windows,我假设您是):

控制面板>pipe理工具>数据源(ODBC)>驱动程序(选项卡)。

查找SQL Server Native Client并查看版本号。 如果你没有安装这个驱动程序,你需要下载它。

试试这个连接string,让你指定一个用户名和密码组合显然适应你的设置

var conn_str =“Driver = {SQL Server Native Client 10.0}; Server = TEXAS; Database = NodeMassive; Uid = WebDev; Pwd = developer1;”;

我能够连接的方式是通过更改连接string。 我不得不改变它说Trusted_Connection{No} ,然后提供login凭据。