2013-06-24 29 views
3

我一直在寻找关于azure移动服务在过去3-4个小时如何工作的优秀教程和文档。我一直在学习如何创建移动服务,连接现有数据库或创建新数据库以及访问存储在移动服务本身创建的表中的数据的教程。没有我可以在哪里找到与移动服务中存储表格完全相同的实际数据库本身。我不明白为什么数据不能直接从数据库访问,而不是这个“移动服务”,除非这个东西实际上是OData服务在提供抽象数据模型以保护底层数据结构方面工作的方式。如何通过天蓝色的移动服务访问关系数据(sql azure)?

我的问题是: 如何通过我的azure移动服务访问我的Sql Azure Db(关系结构)?

回答

1

正如Herve Roggero已经指出的那样,Mobile ServicesRESTful API是访问在SQL Azure中的表建议的方式。而移动服务的全部理念是让它从应用程序中承担数据访问和修改的负担,并将其放到云托管服务的肩膀上。

如果你总是希望能够访问数据表“直接”,有以下几种方式:

您可以使用全局mssql来对数据库运行SQL查询您的服务器脚本,检索数据,修改或插入 他们。

mssql.query('select top 1 * from statusupdates',  
    { success: function(results) 
      { 
      console.log(results); 
      } 
     } 
); 

如果你有另一个云托管服务(基于Web或辅助角色),并您激活内部请求防火墙访问,您可以使用TDS协议访问SQL Azure的服务器和操纵根据数据你的好恶。

最后,您可以在SQL Azure上打开防火墙,以便您可以从外部网络连接到,并再次在客户端上使用TDS协议进行数据库通信。

但我没有一种方法称为“通过移动服务”,而是“从内部”(1)和“绕过它们”(2,3)。从Windows Azure的移动服务自定义API暴露现有的SQL数据库

您可以直接从JavaScript端使SQL查询

3

Adrian,

答案在你的问题。移动业务是一个抽象层,这就是为什么你不能直接访问表。手机的请求来自移动服务,它允许您运行逻辑,然后转而以您的名义访问数据库。出于多种原因,最好的方式包括连接池和安全性。有关这些操作如何工作的详细信息,请查看使此工作成功的Mobile Service REST协议的MSDN文档。

感谢 埃尔韦

3

Here's blog post解释过程。

exports.get = function(request, response) { 
    var id = request.query.id; 
    request.service.mssql.query(
     'select * from Person join Orders on Person.ID = Orders.PersonID where Person.id = ' + id, { 
     success: function(results) { 
     response.send(200, results); 
     } 
    }); 
}; 

更多有关mssql对象的文档。

相关问题