node.js - 在 Nodejs 中使用 async await 运行 SQL Server 存储过程
问题描述
我是使用带有 nodejs 的 SQL Server 的新手。我正在使用node-mssql
图书馆。我发现存储过程有点挑战性。
我的存储过程是:
CREATE PROCEDURE [dbo].[sp_addStudent]
@StudentID int,
@StudentName varchar(50),
@TimeStamp datetime,
@Notes varchar(MAX)
AS
BEGIN
INSERT INTO Students (StudentID , StudentName , [TimeStamp], Notes)
VALUES (@StudentID , @StudentName , @TimeStamp, @Notes);
END
我找到了一种使用try catch在线执行此存储过程的方法,无需参数:
async function getDataFromProcedure(dbConfig, procedureName) {
try {
await sql.connect(dbConfig);
const request = new sql.Request();
recordsets = await request.execute(procedureName);
return recordsets[0];
} catch (error) {
// handle error here
}
};
如何使用 try catch 向存储过程添加参数?
解决方案
快速查看文档显示了如何添加输入/输出参数。例如:
const request = new sql.Request();
request.input('input_parameter', sql.Int, value);
request.output('output_parameter', sql.Int);
const result = await request.execute(procedureName);
这将包括一个称为value
输入参数的变量input_parameter
,并设置一个名为的预期输出参数output_parameter
(这里假设它们都已在存储过程中定义)。输出参数稍后可以在 中观察到result.output
。
推荐阅读
- java - 碎片活动的回收者视图
- flutter - 在 Flutter 中用矩形绘制贝塞尔曲线
- swift - 如何在 SwiftUI 中将 GeometryReader 实现到(Z/H/V)堆栈
- java - Android:处理程序中的 SetText 不会更改 TextView 中的文本
- django - django search 双击返回所有条目
- mysql - 如何使用 Python 连接到 AWS RDS MySql 数据库
- java - 将列表的内容复制到文件夹中
- asp.net - SQL Server 连接未在 ASP.NET 中建立联机连接
- c++ - 将此布尔值传递给此函数的最有效方法是什么?
- javascript - compiler.js:2175 未捕获的错误:无法解析 ClientService 的所有参数:(?)