2013-06-24 2 views
3

Я искал хорошие учебники и документацию о том, как работают лазурные мобильные службы в течение последних 3-4 часов. Я продолжаю работать с учебниками, которые показывают, как создать мобильную службу, подключить существующую базу данных или создать новую, и получить доступ к данным, хранящимся в таблице, созданной в самой мобильной службе. Нет, где я могу найти, как точно получить доступ к самой фактической базе данных, в отличие от таблиц хранения, сделанных в мобильной службе. Я не понимаю, почему невозможно получить доступ к данным напрямую из базы данных, а не к этой «мобильной службе», если эта вещь фактически не работает так, как должна работать служба OData в отношении предоставления абстрактной модели данных для защиты базовой структуры данных ,Как получить реляционные данные (sql azure) через лазурные мобильные службы?

Мой вопрос: Как именно я могу получить доступ к SQL Azure Db (реляционная структура) через мою лазурную подвижную службу?

ответ

1

Как Herve Roggero уже отмечалось, Mobile ServicesRESTful API является предлагаемый способ доступа к таблицам в SQL Azure. И вся идея Mobile Services - взять на себя бремя доступа и модификации данных из вашего приложения и поставить его на плечи облачной службы.

Если вы все же хотите получить доступ к таблицам данных «напрямую», существуют следующие способы:

В ваших серверных сценариев вы можете использовать глобальную mssql для выполнения запросов SQL к базе данных, извлекать данные , изменить или вставить .

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

Если у вас есть еще облачные услуги хостинга (web- или рабочие роли) и вы активировали доступ брандмауэра для внутренних запросов, вы можете получить доступ к SQL Azure Server, с использованием протокола TDS и манипулировать данными в соответствии с ваши симпатии и антипатии.

И, наконец, вы можете открыть брандмауэр на своем SQL Azure, чтобы вы могли подключиться к нему из внешней сети и снова использовать протокол TDS на вашем клиенте для связи с БД.

Но ни один из этих трех методов я бы не назвал «через мобильные службы», а скорее «изнутри» (1) и «минуя их» (2,3).

3

Adrian,

Ответ на ваш вопрос. Мобильный сервис является абстрактным слоем; поэтому вы не можете напрямую обращаться к таблицам. Запрос от телефона поступает на мобильную услугу, которая позволяет запускать логику, затем поворачивается и обращается к базе данных от вашего имени. Лучше всего по многим причинам, включая объединение пулов и безопасность. Для получения подробной информации о том, как работают операции, ознакомьтесь с документацией MSDN по протоколу Mobile Service REST, который делает эту работу.

Благодаря Herve

3

Here's blog post объяснить процесс воздействия существующей базы данных SQL с Windows Azure Mobile Services API пользовательского

Вы можете делать запросы 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 объект.