使用 Prepare 语句插入数据不会返回插入的记录
Inserting data using Prepare statement doesn't return inserted record
我正在使用node-sql。当我尝试使用 Prepare 语句在表中插入记录时,记录集未定义。下面是示例代码行。
ps.execute(data, function (err, recordSet, affected) { });
虽然记录已成功插入数据库,但它在回调函数中给了我未定义的变量。
您没有分享您的陈述的实际作用。 但是,如果您使用 Prepare 语句插入记录。 那么您可以使用"returnValue"或"受影响的"回调参数代替 recordSet。由于节点 sql 状态,如果运行将返回某些 recordSet 的选择查询,则记录集将具有值。看
request.execute('record', function(err, recordsets, returnValue, affected) {
// ... error checks
console.log(recordsets.length); // count of recordsets returned by the procedure
console.log(recordsets[0].length); // count of rows contained in first recordset
console.log(returnValue); // procedure return value
console.log(recordsets.returnValue); // same as previous line
console.log(affected); // number of rows affected by the statemens
console.log(recordsets.rowsAffected); // same as previous line
console.log(request.parameters.output_parameter.value); // output value
// ...
});
根据 node-mssql 文档(相信我,我已经完成了所有内容),记录集是执行选择查询时返回的一个或多个记录集。由于您正在执行插入查询,因此它很可能是未定义的。因为即使必须返回记录集,它也将是整个集(包括新插入的行),这在插入:)中不是很有用
简而言之,如果查询不包含选择,则将获得未定义的记录集。希望这有帮助。
是的,我找到了答案,我们需要使用 OUTPUT 子句指定要返回的记录。喜欢:
INSERT INTO Table OUTPUT.Id VALUES(...);
相关文章:
- 为更改的输入返回插入符号位置的逻辑
- 包含插入的Meteor方法没有返回记录ID作为结果
- 将 javascript 返回值插入 html
- node-mssql 事务插入 - 返回插入的 id
- 代码返回上次刷新前的最新值,而不是插入的最新的值
- 无法将 Ajax 返回插入到 HTML 中
- 使用 Prepare 语句插入数据不会返回插入的记录
- API 返回 404,但记录插入到数据库中
- 节点发布 将新记录插入我的数据库不会返回新条目的数据
- Google 购物 API 节点.js产品插入返回“插入请求必须指定产品”错误
- 节点mssql插入返回未定义的记录集
- JSON节点返回'未定义'从ajax请求插入后
- 谷歌日历.插入API返回400'必需'
- 如何将函数中的返回变量插入HTML表单
- 在表单返回false后插入append
- 获取插入符号位置的常见解决方案会返回奇怪的结果
- Javascript forEach返回值插入到字符串中
- Javascript计算返回NaN,当只插入前2个和
- Sequelize在插入一个大写字母时返回小写字母
- 插入或保存到mongodb返回500服务器错误