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

时间:2012-07-19 12:46:41

标签: sql-server-2008 node.js

我在使用node.js中的Microsoft的node-sqlserver连接到网络上的计算机上的数据库时遇到问题。我在Windows 2008服务器上使用sql server 2008。我在同一域内的不同机器上远程运行我的node.js.我认为这个问题与连接字符串有关。

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

此外,应该有一个用户名和密码进入数据库,但这不在节点模块的示例连接字符串中。

//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!

3 个答案:

答案 0 :(得分:4)

我遇到了同样的问题。为了诊断问题,您需要做的第一件事是更改示例代码:

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"

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

控制面板>管理工具>数据源(ODBC)>驱动器(标签)。

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

答案 1 :(得分:0)

尝试使用此连接字符串,以允许您指定明显适合您的设置的用户名和密码组合

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

答案 2 :(得分:0)

我能够连接的方式是通过更改我的连接字符串。我不得不将其更改为Trusted_Connection{No},然后提供登录凭据。