如何访问节点mssql中的输出参数?

时间:2015-02-23 08:01:18

标签: javascript node.js node-mssql

`  request.input('xyz',sql.Int,1);
    request.input('abc',sql.Numeric,2);
    request.output('pqr',sql.Int);
    request.output('def',sql.Char);
      request.execute('[StoredProcedure]',function(err,recordsets,returnvalue){
      next.ifError(err);
      console.log(returnvalue);
    })`

现在的问题是如何访问输出参数。

问候。

3 个答案:

答案 0 :(得分:10)

request.parameters.pqr.valuerequest.parameters.def.value

得到了答案,所以分享它:)

答案 1 :(得分:0)

实际上,使用"mssql": "^4.3.0"对我来说上述方法不起作用。

我不得不使用promise返回的结果对象,并从output对象中提取参数。像这样:

res.output。

以下是对我有用的示例代码:

poolPromise
        .then(conn => conn.request())
        .then(request => {
            const forecastName = forecastDefinition.name;
            // Input parameters
            request.input('forecastName', sql.VarChar(50), forecastName);
            ...
            // Output parameters
            request.output('actualYear', sql.Int);
            request.output('actualMonth', sql.Int);
            ...
            return request.execute('[dbo].[' + generateForecastProcedure + ']')
        })
        .then((res, err) => {
            if (err) {
                console.log(`${generateForecastProcedure} error: `, err);
            } else {
                console.log(`${generateForecastProcedure} success: `, res);
                // Callback to deal with further processing.
                const output = (res.output || {});
                const actualYear = output.actualYear;
                const actualMonth = output.actualMonth;
                callback(forecastDefinition, actualYear, actualMonth);
            }
        })
        .catch(err => {
            console.log(`${generateForecastProcedure} exception: `, err);
        })

答案 2 :(得分:0)

分析1小时后,我发现了这一点。希望对某人有用

您可以使用 recordsets.output.SQLReturn

来代替 request.parameters.SQLReturn
request.output("SQLReturn");

            request.execute('sample', function (err, recordsets, returnValue, results) {    


                    res.json({ code: 1, message: recordsets.output.SQLReturn });
                }