2012-07-19 107 views
6

我在node.js中具有微軟使用節點SQLSERVER連接到數據庫,我的網絡上的計算機上的麻煩我在Windows 2008服務器上使用sql server 2008。我在同一個域內的不同機器上遠程運行我的node.js。我認爲這個問題與連接字符串有關。與node.js的節點SQLSERVER遇到問題

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!

+0

您的sql服務器是否允許遠程連接? win08-srv解決了嗎? – Doa 2012-07-19 12:51:29

+0

感謝您的快速回復。我如何檢查win08-srv解決?我將它添加到運行node.js的機器的ODBC設置中的連接中,並且連接成功。 – 2012-07-19 12:53:04

+0

只要看看你是否可以ping通它。如果解決,確保SQL服務器配置爲接受遠程連接。如果仍然不起作用,請檢查您是否安裝了SQL Server Native Access Client並且它是正確的版本(您有10.0,11.0也存在)。如果這沒有幫助,請檢查數據庫(DB)是否正確。之後,我還沒有想法:) – Doa 2012-07-19 13:01:34

回答

0

我能夠連接的方式是通過改變我的連接字符串。我不得不將其更改爲Trusted_Connection{No},然後提供登錄憑據。

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服務器本機客戶端看到的版本號。如果您沒有安裝此驅動程序,則需要下載它。

+0

呃!我簡直不敢相信這一切就是這樣,將11點改爲10點對我來說也是如此。 – daniellmb 2013-02-08 05:18:51

+0

簡單修復總是最好的:) – 2013-02-08 16:27:18

0

試試這個連接字符串,允許你指定一個用戶名和密碼組合顯然適應了您的設置

VAR conn_str =「驅動程序= {SQL Server本機客戶端10.0};服務器= TEXAS;數據庫= NodeMassive; UID = Webdev的; PWD = developer1;「;