gpt4 book ai didi

javascript - Node mssql 插入返回未定义的记录集

转载 作者:行者123 更新时间:2023-11-30 12:08:04 25 4
gpt4 key购买 nike

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 未定义。请看this section的文档以了解有关如何获取受影响行数的更多信息。

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

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);
}
});

关于javascript - Node mssql 插入返回未定义的记录集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34615684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com