首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >node-mssql insert返回未定义的记录集

node-mssql insert返回未定义的记录集
EN

Stack Overflow用户
提问于 2016-01-05 23:47:17
回答 2查看 9.3K关注 0票数 1

Select语句工作正常,但是每当我尝试插入或更新记录集时,受影响的值都是未定义的。insert/update在数据库中工作,我只是不能读取返回值。

代码语言:javascript
复制
var sql = require('mssql');
var config = {...};

sql.connect(config).then(function() {
  new sql.Request().query("INSERT INTO MyTable (Name, Age) VALUES ('John', 30)").then(function(recordset, affected) {
    console.log('Recordset: ' + recordset);
    console.log('Affected: ' + affected);
  }).catch(function(err) {
    console.log('Request error: ' + err);
  });
}).catch(function(err) {
  if (err) {
    console.log('SQL Connection Error: ' + err);
  }
});

控制台的输出为:

代码语言:javascript
复制
Recordset: undefined
Affected: undefined

我觉得我一定是漏掉了一些非常简单的东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-06 03:20:11

正如在注释中提到的,INSERT语句不返回记录集,因此recordset是未定义的。有关如何获取受影响行数的更多信息,请参阅文档的this section

你的代码的问题是你期望affected作为promise的第二个参数,但是promises只支持一个参数。因此,您必须以这种方式访问受影响的行数:

代码语言:javascript
复制
var sql = require('mssql');
var config = {...};

sql.connect(config).then(function() {
  var request = new sql.Request();
  request.query("INSERT INTO MyTable (Name, Age) VALUES ('John', 30)").then(function(recordset) {
    console.log('Recordset: ' + recordset);
    console.log('Affected: ' + request.rowsAffected);
  }).catch(function(err) {
    console.log('Request error: ' + err);
  });
}).catch(function(err) {
  if (err) {
    console.log('SQL Connection Error: ' + err);
  }
});
票数 3
EN

Stack Overflow用户

发布于 2020-11-29 03:08:33

如果您希望id作为输出参数

代码语言:javascript
复制
const sql = require("mssql/msnodesqlv8");
const pool = new sql.ConnectionPool(dbConfig);`
const poolConnect = pool.connect();    
let query = `INSERT INTO <table>(fields) VALUES(values);SELECT @id = SCOPE_IDENTITY()`
await poolConnect;
pool.request()
    .output("id", sql.Int)
    .query(query).then((err, result) => {
        console.log(result.output.id)
    }).catch(err => {
        console.log(err)
    })`
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34615684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档