2012-05-31 36 views
2

我试图按照有关如何连接和检索与node.js的http://cretz.github.com/node-tds/的Node.js +节点TDS + SQL服务器

SQL Server数据我没有错误的连接节点TDS例如,但是当我尝试检索数据时,我得到以下内容:

"Error: Client must be in LOGGED IN state before executing sql 
at TdsClient.sqlBatch (C:\Program Files (x86)\nodejs\node_modules\tds\lib\tds-client.js:101:13) 
at Statement.<anonymous> (C:\Program Files (x86)\nodejs\node_modules\tds\lib\tds.js:256:37) 
at Statement.execute (C:\Program Files (x86)\nodejs\node_modules\tds\lib\tds.js:2:59) 
at Object.<anonymous> (C:\Program Files (x86)\nodejs\edas\app.js:67:6) 
at Module._compile (module.js:446:26) 
at Object..js (module.js:464:10) 
at Module.load (module.js:353:31) 
at Function._load (module.js:311:12) 
at Array.0 (module.js:484:10) 
at EventEmitter._tickCallback (node.js:190:38)" 

我已登录,所以...我无法弄清楚发生了什么事。

+0

你有可能您的应用程序剥离下来,以生成错误,并张贴请所需的最少代码?不知道执行语句的上下文很难确定问题。 –

+2

您可能也对SQL Server的官方Microsoft node.js驱动程序感兴趣:https://github.com/windowsazure/node-sqlserver – Randolpho

+0

我在您的问题上看到了SQL Server 2012标记 - 它有任何机会可以做接着就,随即?你是否对2008r2实例进行过尝试? –

回答

4

在连接已经建立,您应该执行你的说法,即

var tds = require("tds"); 

var conn = new tds.Connection({ 
    host: "localhost", 
    port: 1433, 
    userName: "user", 
    password: "secret", 
    database: "MyDb" 
}); 

conn.connect(function(error) { 
    if (error != null) { 
    console.error("Received error", error); 
    } else { 
    console.log("Now connected, can start using"); 
    } 
}); 

conn.on("connect", function() { 
    var statement = conn.createStatement("SELECT ProductID, ProductName FROM Products"); 
    statement.on("row", function(row) { 
     console.log("Received row: ", row.getValue(0)); 
    }); 
    statement.execute(); 
});