te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>nodes - NodeJS ODBC library not returning affectedinserted rows as result - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

nodes - NodeJS ODBC library not returning affectedinserted rows as result - Stack Overflow

programmeradmin1浏览0评论

I am resorting to asking the minds of StackOverflow to help me identify what it is I'm doing wrong. I have written a NodeJS app that connects to a Microsoft Fabric database. I am using an ODBC connection via the npm ODBC library. I cannot, for the life of me, seem to get the number of rows inserted after an insert statement runs. The connection is fine and the row gets inserted but the results are always empty. Here is the sample code directly from the ODBC npm page:

const odbc = require('odbc');

async function commitTransaction() {
    const connection = await odbc.connect(`${process.env.CONNECTION_STRING}`);
    await connection.beginTransaction();
    const insertResult = await connection.query('INSERT INTO MY_TABLE VALUES(1, \'Name\')');
    await connectionmit();
    // INSERT query has now been committed
}

commitTransaction();

My expectation would be the insertResult variable contains a relevant response which includes the number of rows inserted. The relevant part of the connection string is that I'm using this driver: ODBC Driver 18 for SQL Server as Microsoft Fabric documentation states the ODBC Driver must be version 18 or higher.

Any help in identifying what it is I am doing wrong would be greatly appreciated! Thank you!

I am resorting to asking the minds of StackOverflow to help me identify what it is I'm doing wrong. I have written a NodeJS app that connects to a Microsoft Fabric database. I am using an ODBC connection via the npm ODBC library. I cannot, for the life of me, seem to get the number of rows inserted after an insert statement runs. The connection is fine and the row gets inserted but the results are always empty. Here is the sample code directly from the ODBC npm page:

const odbc = require('odbc');

async function commitTransaction() {
    const connection = await odbc.connect(`${process.env.CONNECTION_STRING}`);
    await connection.beginTransaction();
    const insertResult = await connection.query('INSERT INTO MY_TABLE VALUES(1, \'Name\')');
    await connectionmit();
    // INSERT query has now been committed
}

commitTransaction();

My expectation would be the insertResult variable contains a relevant response which includes the number of rows inserted. The relevant part of the connection string is that I'm using this driver: ODBC Driver 18 for SQL Server as Microsoft Fabric documentation states the ODBC Driver must be version 18 or higher.

Any help in identifying what it is I am doing wrong would be greatly appreciated! Thank you!

Share Improve this question asked Feb 17 at 18:04 Matt CryslerMatt Crysler 8853 gold badges11 silver badges23 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 0

I am an idiot. The log statement was converting the result to a string which truncates the metadata that comes with it and only returns the array of results, of which there are none. I am able to access the result directly via

...
const insertResult = await connection.query('INSERT INTO MY_TABLE VALUES(1, \'Name\')');
console.log(insertResult.count);
...

Apologies for the misunderstanding but sometimes talking out the problem with a text editor is helpful :)

发布评论

评论列表(0)

  1. 暂无评论