如何在node.js中的DB2更新查询中获取行更新计数?

时间:2015-09-29 11:31:10

标签: node.js db2 rowcount ibm-db2

我正在尝试在DB2数据库上的node.js中执行更新语句。更新操作有效,但我不知道如何在查询执行后获取DB2中更新记录的数量。任何帮助将不胜感激。 以下是我的代码:

conn.beginTransaction(function (err) {
if (err) {
//could not begin a transaction for some reason. 
console.log(err);
return conn.closeSync();
}
var stmt = ("Update tableA set col1='abc' where col2='xyz'");
var result = conn.querySync(stmt);
conn.commitTransaction(function (err){
if (err) {
console.log(err);
return conn.closeSync();
}
});
console.log('Rows affected :: '+ result.numRows());
});

1 个答案:

答案 0 :(得分:3)

NPM文件似乎有点不完整。对于DML语句,您可能应该使用ODBCStatement.executeNonQuerySync()according to the source code (line 413)返回受影响的行数。

如果您正在使用最新版本的DB2 for LUW,则可以将UPDATE包装在数据更改表参考中:

var stmt = ("select count(*) from final table (" + 
            "Update tableA set col1='abc' where col2='xyz'"+
            ")");
var result = conn.querySync(stmt);

result将包含受影响的行数。