0

最近Azure Easy API(モバイルサービスから最近マイグレーションされたアプリサービス上)を作成しました。 SQLストアドプロシージャから3つの結果セットを返したい。しかし、最初の結果セットのみを返します。私はmultipleの設定がqueryからtrueになると、複数の結果セットを返すことができますが、それを行う方法がわかりません。それは私の紺碧のAPIは次のようになります。Azure Easy API JavaScript:MSSQLクエリから複数の結果セットを返す方法

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); 
}); 

答えて

1

のNode.jsでAzureのモバイルアプリでexecute()機能を使用しよう、とhttp://azure.github.io/azure-mobile-apps-node/jsdoc_data.execute.js.html#line55で説明したように、真のパラメータmultipleを追加してください。

E.G.

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); 
     }) 
    } 
} 

複数の結果配列を含む配列を返します。

さらに詳しいことがありましたら、お気軽にお知らせください。

+0

ありがとうございました。しかし、req.azureMobileは、アプリサービスへの移行後もモバイルサービスで動作するとは考えていません。確認していただけますか? –

+0

私はモバイルアプリでEasy APIを試しました。モバイルサービスをモバイルアプリに移行した後、Easy Apisを確認してください。 –

関連する問題