Поддержка sqlxml в. Net Framework

Через ADO.NET нельзя получить доступ к таким сервисным провайдерам, как SQLXMLOLEDB, поэтому комплект SQLXML 3.0 содержит сборку Microsoft.Data.SqlXml. В нее входят следующие классы:

  • SqlXmlCommand – позволяет сохранять результаты в поток, а также предоставляет доступ к специальным свойствам.
  • SqlXmlParameter – представляет собой параметр запроса.
  • SqlXmlAdapter – позволяет заполнить DataSet с помощью SqlXmlCommand.

Самый богатый свойствами и методами класс – SqlXmlCommand, с помощью которого можно выполнять запросы XPath, исполнять шаблоны и выполнять автоматическую трансформацию, причем все это может быть сделано на клиенте.

Свойства класса SqlXmlCommand

  • ClientSideXml – если установлен в true, преобразование recordset-а в XML выполняется на клиенте. Подробности в [1].
  • SchemaPath – путь до аннотированной схемы, с помощью которой можно выполнять запросы XPath.
  • XslPath – Путь до файла XSLT, которая будет автоматически использована после выборки данных (и, если необходимо, преобразования их в XML).
  • Namespaces – Задает пространства имен, которые могут понадобиться для исполнения запросов XPath.
  • RootTag – Так как результирующий XML-документ не является правильно оформленным вследствие того, что не имеет корневого элемента, непосредственная работа с ним может быть затруднена. Свойство RootTag позволяет задать корневой элемент результирующего документа.

В качестве типа команды можно использовать следующие значения.

Тип Описание
SqlXmlCommandType.Sql Стандартный код T-SQL.
SqlXmlCommandType.XPath Запрос XPath.
SqlXmlCommandType.Template Выполнение шаблона.
SqlXmlCommandType.TemplateFile Выполнение шаблона, находящегося в файле.
SqlXmlCommandType.UpdateGram Выполнение апдейтаграммы. Подробности в [1]
SqlXmlCommandType.Diffgram Выполнение дифграммы.

В форумах по ASP.NET иногда поднимаются вопросы наподобие: «Как наиболее эффективно и просто передать XML-документ пользователю?». Вот пример кода на VB.NET:

Передача XML пользователю с помощью SqlXmlCommand.

Dim cmd as SqlXmlCommandcmd = New SqlXmlCommand("Provider=SQLOLEDB;User ID=user;" _ & "Data Source=server;Password=password;")cmd.CommandText = "select * from [table] for xml auto"cmd.CommandType = SqlXmlCommandType.Sqlcmd.RootTag = "root"Response.Clear()Response.ContentType = "text/xml"cmd.ExecuteToStream(Response.OutputStream)Response.End()

Помимо метода ExecuteToStream, класс SqlXmlCommand предоставляет другие удобные методы выборки данных:

  • ExecuteStream – создает и возвращает новый поток.
  • ExecuteXmlReader – создает и возвращает экземпляр класса XmlReader.

Примеры выполнения запросов XPath и шаблонов можно посмотреть в [1]. Более подробную информацию об использовании этих классов можно получить в [4].


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: