0

(最近モバイル サービスから移行されたアプリ サービスで) Azure Easy API を作成しました。SQL ストアド プロシージャから 3 つの結果セットを返したいと考えています。ただし、最初の結果セットのみが返されます。tomultipleの属性を設定すると複数の結果セットを返すことができると読みましたが、その方法がわかりません。それが私の紺碧の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ストアド プロシージャは、3 つの結果セット (投票、質問、およびオプション) を返します。ただし、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 Mobile Appsの関数を使用してみて、 http://azure.github.io/azure-mobile-apps-node/jsdoc_data.execute.js.html#multipleで説明されているようにパラメーターを true に追加してください。 line55

例えば

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 に答える