0

我创建了一个 Azure Easy API(在最近从移动服务迁移的应用服务上)。我想从 SQL 存储过程返回三个结果集。但它只返回第一个结果集。我已阅读 to 的设置属性multiple将允许返回多个结果集,但我不知道该怎么做。这就是我的天蓝色 API 的样子:querytrue

exports.get = function(request, response) { 
    var mssql = request.service.mssql;
    var param1 = request.query.pollid;
    var param2 = request.query.userid;
    var sql = "EXEC poll.GetPollsData @pollid = ?, @userid = ?";

    mssql.query(sql, [param1, param2], {
        success: function(results) { 
                 response.send(200, results); 
            }, error: function(err) {
                response.send(400, { error: err });        
        }
    });
};

GetPollsData存储过程返回三个结果集(用于投票、问题和选​​项)。但 API 仅显示客户端的第一个表(pollData如下所示)。

这是客户端 JavaScript:

client = new WindowsAzure.MobileServiceClient(a, k);
client.invokeApi('getpollsdata', {
    method: 'get',
    parameters: {
        pollid: p,
        userid: u,
    }
}).done(function(results) {
    pollData = JSON.parse(results.response);
}, function(error) {
    console.log(error);
});
4

1 回答 1

1

请尝试execute()在 Node.js 中使用 Azure 移动应用中的函数,并将参数添加multiple为 true,如http://azure.github.io/azure-mobile-apps-node/jsdoc_data.execute.js.html#中所述第 55 行

例如

module.exports = {
    "get": function (req, res, next) {
        var query = {
            sql:'EXEC [dbo].[SampleProcedure]',
            multiple:true
        };
        req.azureMobile.data.execute(query).then(function(results){
            console.log('results',results);
            res.json(results);
        })
    }
}

它将返回一个包含多个结果数组的数组。

如有任何进一步的疑虑,请随时告诉我。

于 2016-09-23T02:02:29.617 回答