2013-06-24 32 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對象的文檔。

相關問題