Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Microsoft SQL Server для профессионалов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

5.2 Получение данных с SQL Server в формате XML

5.2.1 Зачем и общие особенности

SELECT ... FOR XML в SQL Server 2000, прием данных в формате XML, фрагменты XML (XML fragments) и добавление корневого элемента

Часто бывает необходимо извлечь данные из базы данных SQL Server в формате XML. Наиболее распространенные ситуации:

  • передача данных из филиалов в центр или наоборот;
  • необходимость загрузить данные в другое приложение;
  • необходимость обменяться данными с партнерами
  • передача данных на Web-сервер или напрямую в броузер пользователю

Существует множество различных вариантов извлечения данных из базы данных SQL Server в разных XML-совместимых форматах (они рассмотрены ниже). Общие моменты у них следующие:

  • При выполнении запроса SELECT ... FOR XML SQL Server всегда генерирует обычный ROWSET (как при выполнении запроса без команды FOR XML), а затем специальный программный модуль SQL Server преобразует этот ROWSET в XML. Поэтому оптимизируются такие запросы как обычные.
  • При выполнении запроса SELECT ... FOR XML возвращается единственный столбец, содержащий код XML. Query Analyzer вполне может его обрезать, поэтому рекомендуется в Query Analyzer (если вы работаете с ним) увеличить значение параметра Maximum characters per column (меню Tools -> Options -> вкладка Results).
  • Запросы ...FOR XML возвращают неправильно отформатированные (not well-formed) документы XML. Официально такие документы называются фрагментами (XML document fragments). Отличаются они от правильных тем, что в них не хватает корневого элемента, который вполне можно дописать вручную. Например, запрос ...FOR XML вернул:
<Order OrderID="10248"/>
<Order OrderID="10249"/>

            Чтобы правильно просмотреть его в броузере, надо добавить корневой элемент:

<OrderList>
     <Order OrderID="10248"/>
     <Order OrderID="10249"/>
</OrderList>

            О добавлении корневого элемента должно позаботиться ваше приложение,   принимающее поток данных от SQL Server. На компакт-диске в каталоге XML           лежит готовое Web-приложение QueryTool, которое автоматически дописывает           корневой элемент queryresults и передает результаты выполнения запроса в Web-броузер. Это приложение можно использовать для отладки запросов ... FOR XML.

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 

 
© 2004-2008, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru