我正在尝试将 NodeJS 与 Tedious ( http://pekim.github.io/tedious/ ) sql server 插件一起使用来进行多个数据库调用。我的意图是: 1. 打开一个连接 2. 启动一个事务 3. 进行多个数据库(存储过程)调用,不会返回任何数据。4. 提交事务(或错误回滚)。5.关闭连接
这是 NodeJS 的示例 .js 文件(不使用事务),我在其中尝试进行多个数据库调用,但失败并出现错误“请求只能在 LoggedIn 状态下进行,而不是 SentClientRequest 状态下。” 我没有尝试解决这个问题。
有谁知道如何解决这个问题?
var Connection = require('tedious').Connection;
var Request = require('tedious').Request;
var config = {
userName: 'login',
password: 'password',
server: '127.0.0.1',
options: { rowCollectionOnDone: true }
};
var max = 1;
for (var i = 0; i < max; i++) {
var connection = new Connection(config);
function executeStatement() {
request = new Request("select 42, 'hello world'", function (err, rowCount) {
if (err) {
console.log(err);
} else {
console.log(rowCount + ' rows');
}
});
request.on('row', function (columns) {
columns.forEach(function (column) {
console.log(column.value);
});
});
request.on('doneInProc', function (rowCount, more, rows) {
});
request.on('doneProc', function (rowCount, more, rows) {
console.log('statement completed!')
connection.execSql(request);
});
request.on('returnStatus', function (status) {
console.log('statement completed!')
});
connection.execSql(request);
}
connection.on('connect', function (err) {
// If no error, then good to go...
executeStatement();
});
}
console.log('Done!');