完成批量插入后如何获得“完成”消息?

时间:2016-07-01 14:31:22

标签: sql sql-server node.js

我正在尝试使用Node.js,mssql库和SQL Server完成批量插入请求时运行一个函数:

sql.connect(config, function (err) {
  // error handling

  var request = new sql.Request()
  request.bulk(table, function (err, rowCount) {
    if (err) {
      // error handling
    }
  })
  request.on('error', function (err) { // Doesn't Register
    console.dir(err)
  })
  request.on('done', function (returnValue, affected) { // Doesn't Register
    MyClass.MyFunction()  // FUNCTION I NEED TO CALL
  })
})
sql.on('error', function (err) {
  // error handling
  sql.close()
})

既不会触发错误也不会触发完成事件。我只需在SQL请求完成后运行MyFunction。为什么不触发事件?

2 个答案:

答案 0 :(得分:2)

documents开始,您的请求将在.bulk()回调中完成。不确定为什么没有调用Request'done'事件,而是尝试使用批量回调。

request.bulk(table, function (err, rowCount) {
    if (err) {
      // error handling
    }
    console.log('Bulk insert is done, %s rows committed', rowCount);
  })

答案 1 :(得分:1)

使用bulk功能上的回调,如documentation

中所述
request.bulk(table, function (err, rowCount) {
    if (err) {
        // error handling
    } else {
        MyClass.MyFunction();
    }
});