如何在 node.js 中的 DB2 更新查询中获取行更新计数?
How to get row update count in a DB2 update query in node.js?
我正在尝试在 node.js 中对 DB2 数据库执行更新语句。更新操作有效,但我不知道如何在执行查询后获取 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());
});
NPM 文档似乎有点不完整。对于 DML 语句,您可能应该使用 ODBCStatement.executeNonQuerySync()
,其中 according to the source code (line 413)、returns 受影响的行数。
如果您正在使用最新版本的 DB2 for LUW,作为替代方案,您可以将 UPDATE
包装在 数据更改 table 中参考:
var stmt = ("select count(*) from final table (" +
"Update tableA set col1='abc' where col2='xyz'"+
")");
var result = conn.querySync(stmt);
result
将包含受影响的行数。
我正在尝试在 node.js 中对 DB2 数据库执行更新语句。更新操作有效,但我不知道如何在执行查询后获取 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());
});
NPM 文档似乎有点不完整。对于 DML 语句,您可能应该使用 ODBCStatement.executeNonQuerySync()
,其中 according to the source code (line 413)、returns 受影响的行数。
如果您正在使用最新版本的 DB2 for LUW,作为替代方案,您可以将 UPDATE
包装在 数据更改 table 中参考:
var stmt = ("select count(*) from final table (" +
"Update tableA set col1='abc' where col2='xyz'"+
")");
var result = conn.querySync(stmt);
result
将包含受影响的行数。