You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NodeJS ODBC库执行插入后无法返回受影响行数求助

解决ODBC插入数据后无法获取受影响行数的问题
  • 核心问题:你使用的connection.query()方法主要为查询类语句(如SELECT)设计,对于INSERT这类非查询操作,它不会返回受影响行数,这就是你拿到空结果的原因。
  • 解决方案:改用connection.run()方法,该方法专门用于执行INSERT/UPDATE/DELETE这类非查询语句,会返回包含rowsAffected属性的结果对象,直接就能获取插入的行数。

修改后的代码示例:

const odbc = require('odbc');

async function commitTransaction() {
    const connection = await odbc.connect(`${process.env.CONNECTION_STRING}`);
    await connection.beginTransaction();
    // 替换query为run方法
    const insertResult = await connection.run('INSERT INTO MY_TABLE VALUES(1, \'Name\')');
    console.log('插入行数:', insertResult.rowsAffected); // 此处可直接获取行数
    await connection.commit();
}

commitTransaction();

额外注意点:

  • 你使用的ODBC Driver 18版本符合Microsoft Fabric的要求,无需调整
  • 若仍有异常,可检查连接字符串是否包含Encrypt=yes(Fabric要求加密连接),不过你已能成功插入数据,这条大概率无问题
  • 事务提交前即可通过insertResult.rowsAffected获取行数,无需等待commit完成

内容的提问来源于stack exchange,提问作者Matt Crysler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 06:57:02