使用Knex-如何检索多个结果集

时间:2018-10-08 09:39:12

标签: knex.js

我正在使用MSSQL,当我使用knex.raw调用此存储的proc时,我有一个存储的proc返回多个结果集(1个用于数据,1个用于记录计数),Knex仅返回第一个结果集。如何使用Knex + Node.js检索其他记录计数结果集?

{     “ data”:[{“ ID”:6344,“ RequestID”:910846045,“ Requester”:“ XXXXXXX”,             “开始”:“ 09/25/2018”,             “已完成”:“ 09/25/2018”         }  {            “ ID”:6345,             “ RequestID”:910846046,             “请求者”:“ XXXXXXX”,             “开始”:“ 09/25/2018”,             “已完成”:“ 09/25/2018”         }     ],     “ RecordCnt”:2 }

1 个答案:

答案 0 :(得分:0)

从使用mssql迁移到knex时,我遇到了同样的问题。

简单的答案是knex不支持此功能,但是底层的MSSQL客户端(乏味)支持。如果您熟悉mssql客户端,则可以简单地从池中获取一个连接,然后按通常的方式使用它来连接execute a stored procedure,例如

const connection = await knex.client.aquireConnection();
const result = await connection.request()
  .input('parameter', value)
  .execute('[procedure_name]');
knex.client.releaseConnection(connection); // we don't have to wait for this

最后一行非常重要,因为我们正在手动获取连接,所以我们有责任将其释放回池中。否则,将导致池饥饿,并且新请求最终将开始失败(基于池的大小)。