2

我正在尝试在 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());
});
4

1 回答 1

4

NPM 文档似乎有点不完整。对于 DML 语句,您可能应该使用ODBCStatement.executeNonQuerySync()根据源代码(第 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将包含受影响的行数。

于 2015-09-29T12:06:28.887 回答