6

node.jsでMicrosoftのnode-sqlserverを使用して、ネットワーク上のコンピューター上のデータベースに接続できません。Windows2008サーバーでSQLServer2008を使用しています。同じドメイン内の別のマシンで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!れます。

4

3 に答える 3

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を探し、バージョン番号を確認します。このドライバがインストールされていない場合は、ダウンロードする必要があります。

于 2012-08-07T12:52:31.850 に答える
0

この接続文字列を試して、設定に明らかに適合するユーザー名とパスワードの組み合わせを指定できるようにしてください

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

于 2012-08-07T19:57:33.570 に答える
0

接続できたのは、接続文字列を変更することでした。私はそれを言うように変更してからTrusted_Connection{No}、ログイン資格情報を提供する必要がありました。

于 2013-07-17T12:26:58.623 に答える