节点mssql插入返回未定义的记录集
node-mssql insert returning undefined recordset
Select语句运行良好,但每当我尝试插入或更新记录集时,受影响的值都是未定义的。插入/更新在数据库中工作,我就是无法读取返回的值。
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);
}
});
控制台的输出为:
Recordset: undefined
Affected: undefined
我觉得我一定错过了一些非常简单的东西。
如注释中所述,INSERT
语句不返回记录集,因此recordset
未定义。请参阅文档的这一部分,了解有关如何获取受影响行数的更多信息。
代码的问题是,您期望affected
作为promise的第二个参数,但promise只支持一个参数。因此,您必须以这种方式访问受影响的行数:
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);
}
});
如果您希望id是输出参数
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)
})`
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- 有许多关系创建记录 - 为什么未定义
- 为什么当我将变量记录到控制台时,我得到了输出,但是当我返回它时,我收到“未定义”
- 节点mssql插入返回未定义的记录集
- ExtJS-组合框中记录的未定义索引
- 控制台说JavaScript数组是未定义的,但我'我可以记录它的内容
- 代码日志记录在$.get请求中运行时未定义,但在页面上运行时工作正常
- 在setupController中,EmberJS$.ajax记录获取返回未定义的模型
- EXT.NET:“;未捕获的类型错误:无法读取属性'数据'未定义的“;将记录添加到存储时
- 记录到控制台的JavaScript字段总是“未定义”
- 为什么这个for循环记录“未定义”?
- 为什么一些节点属性在我记录它们时显示为未定义?
- 当作为参数传递给setTimeout回调函数时,全局变量被记录为未定义
- Javascript对象在记录集中未定义
- 为什么未定义此函数日志记录(JavaScript关闭)
- 未捕获的ReferenceError:在剑道网格中创建新记录时未定义CustomerContract
- 将属性添加到对象,定义它并立即记录它返回未定义
- ExtJS4 Model.save()错误:记录未定义
- 在Backbone.js集合中记录更改,我的集合未定义
- 在中间件之间正确传递数据会记录,但返回未定义的内部对象