Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Вебмастеру -> Сеппа Д. -> "Microsoft ADO.NET" -> 207

Microsoft ADO.NET - Сеппа Д.

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 201 202 203 204 205 206 < 207 > 208 209 210 211 212 213 .. 260 >> Следующая

Создав файл схемы, можно задать путь к нему свойству ScbemaPatb объекта SqiXmlCormnarxdX \ic туюншп фрагмент кода выполняет обсуждавшийся выше запрос XPath и, используя описанную схему, возвращает сведения о размещенных конкретным клиентом заказах и их составе. Результаты запроса помещаются в объект XmlDocument.
Visual Basic .NET
'Добавьте в начало модуля кода следующие строки Imports Microsoft.Data. SqXXffil Imports System.Xml
Dim strPatnToRes-Jlts As String = "C:\NyBesults. XNL" Dim strPathToSchema As String = "C:\HySchema.XSU"
478
Часть III Автономная работа с данными: объект DataSet модели ADO.NET
Dim strConn As String
"Provider=SQLOLEDB; " & _ "Data Sourca=(local)\NetSDKi" & "Initial Catalog=Northwind; " & _ "Trusted_Connection=Yes;"
Dim As New
cmd.CommandType = SqlXmlCommandType.XPath Dim As XmlReader = сжг ExecuteXiiiI fieatfeii ) Dim xmIDoc As New XmlDocumentQ xmlDoc.Load(rdr) rdr.CloseO
xmlDoc.Save(st rPathToResults) ShowXn)lInlE(strPathToResults)
Visual C# .NET
//Добавьте в начало модуля кода следующие строки using Microsoft.Data.SqlXml; using System.Xml;
string strPathToflesults = "С:\\MyResults.XML";
string strPathToSchema = "C:\VMySchema.XSD";
string strConn = "Provider=SQLOLEDB;Data Source=(local)\\NatSDK; " +
"Initial Catalog=Northwind;Trusted J!onnection=Yes;": Si|iX«10r>nnMi>o cmd = new SqlXmlComnand( st rConn ) ;
XmlReader rdr = cmd. ExecuteXmlReaderO; XmlDocument жпіБос = new XmLDocument() ; xmlDoc.Load(rdr);
rdr.CloseO;
xfnlDoc. Save(strPathToResults) ; ShowXraliniE(st r PathToResults) ;
Как уже говорилось, разработано несколько способов для задания формата XML-документа, причем два XML-документа могут содержать одним коны с данные, но различаться по схеме. Сопутствующая технология под названием XSLT (extensible Stylesheet Language Transformations) позволяет изменять структуру XML-документов.
Можно считать, что XSLT-трансформация — это XML-документ с набором инструкций, описывающих порядок преобразования содержимого другого XML-документа. очень удобны, когда нужно изменить структуру
документа. Кроме того, XSLT-трансформация позволяет преобразовать XML в HTML.
Чтобы применить к результатам своего запроса SQL XMLXS1.T трлисфорч-.шпю. задайте ШтщШРШ объекта SqlXmlCommand путь к файлу этой трансформации.
Подробнее об этом - чуть іа.іьіие.
cmd,SchemaPath cmd.CommandText cmd.CommandTypa
strPathToSchema; "Orders[CustomerID='GROSfi']"; SqlXmlCommandType.XPath;
XSLT-трансформация
ГЛАВА 12 Работа с XML-данными -79
Передача обновлений
Поставщик SQL XML .NET Data Provider позволяет передавать в БД обновления, У объекта SqIXmlAdapter есть метод ^^позволяющий передавать в БД обновления, хранящиеся в объекте DataSet. Если вы ^атсл:-}:;; читали главу 10, наличие такого метода у объекта DataAdapter вас не удивит.
Тем не менее SqIXmlAdapter передает обновления иначе, чем другие объекты DataAdapter. Многие из таких объектов (например. OleDbDatoAdapter,SqlDataAdapter и OdbcDataAdapter) предоставляют свойства, содержащие объекты Command с логикой, необходимой для передачи обновлений в БД. Обычно эти объекты Command содержат несколько параметров, связанных со столбцами объекта Dauu'aole. При вызове метода Update большинство объектов DataAdapter просматривают записи конкретного объекта DataTable. Обнаружив измененную запись, DataAdapter каждый раз с помощью соответствующего объекта. Command передает отложенное изменение в БД и затем вызывает метод
Объект SqlXini/-.'Japte работает иначе. В одном из предыдущих разделов гп%9 главы я говорил об XML-документах формата diffgmm(pHC. 12-5). Вместо того чтобы искать отложенные изменения в объекте DataSet, просматривая объекты uatal'.otv по одному за раз, SqIXmlAdapter обрабатывает имеющиеся в объекте DataSet отложенные изменения, генерируя соответствующий XML-документ формата diffgram. Затем поставщик SQL XML .NET Data Provider полностью обрабатывает этот документ, создавая сложный пакетный запрос для одновременной передачи всех изменений в БД.
Просмотрев содержимое XML-документа формата diffgram на рис. 12-5, вы, возможно, поймете, как создавать наборы запросов INSERT, UPDATE и DELETEдля передачи отложенных изменений в БД. Без вашей помощи поставщику SQL XML NET Data Provider создать эти запросы не удастся.
Помните файл аннотированнойХМЕ-схемы, с помощью которого SQLXML .NET Data Provider преобразовывал запрос XPath в SQL-запрос? Сейчас проблема другая, но решение то же. При работе с запросом XPath мы задаем свойству Sebenutl'aih объекта SqlXmlCommandayib к нашему файлу схемы. Затем воспользуемся объектом SqIXmlAdapter и передадим изменения в БД, убедившись, что для объекта
Sq/Xm/Commatidonpe^iCH файл схемы, включающий сведения о таблицах и столбцах, соответствующих содержимому XML-документа формата diffgram.
Фактически передать обновление в БД можно средствами объекта SqlXmlCom-mand, свойству СШтапШШ которого задано значение DiffGramlivocio создайте XML-документ формата diffgram, вызвав мс но DataSet.WriteXml. 5 а i см настройте объект SqlXmlCommand для использования этого документа и файла схемы, и ...вуаля! Следующий фрагмент кода демонстрирует данную функциональность:
Предыдущая << 1 .. 201 202 203 204 205 206 < 207 > 208 209 210 211 212 213 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100