3

在过去的 3-4 小时内,我一直在寻找有关 azure 移动服务如何工作的优秀教程和文档。我一直在学习如何创建移动服务、连接现有数据库或创建新数据库以及访问存储在移动服务本身创建的表中的数据的教程。与移动服务中创建的存储表相比,我在哪里可以找到如何准确访问实际数据库本身。我不明白为什么不能直接从数据库访问数据而不是从这个“移动服务”访问数据,除非这个东西实际上按照 OData 服务的工作方式工作,提供抽象数据模型来保护底层数据结构.

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

4

3 回答 3

3

这是解释从 Windows Azure 移动服务自定义 API 公开现有 SQL 数据库的过程的博客文章

您可以直接从 javascript 端进行 SQL 查询。

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对象的更多文档。

于 2013-06-25T20:24:54.697 回答
3

阿德里安,

答案就在你的问题中。移动服务是一个抽象层;这就是为什么您不能直接访问这些表的原因。来自电话的请求到达移动服务,它允许您运行逻辑,然后转身代表您访问数据库。出于多种原因,包括连接池和安全性,这是最好的方法。有关操作如何工作的详细信息,请查看 MSDN 文档中有关使该操作工作的移动服务 REST协议。

谢谢赫维

于 2013-06-25T00:17:21.760 回答
1

正如Herve Roggero已经指出的,移动服务 RESTful 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 协议进行 DB 通信。

但是我不会将这三种方法称为“通过移动服务”,而是“从内部”(1)和“绕过它们”(2,3)。

于 2013-06-25T07:10:47.150 回答