dsSales.WriteXml("…\DiffGram.xml", XmlWriteMode.DiffGram)
End Sub
В листинге 10.6 приведено содержимое файла DiffGram.xml, полученного в результате щелчка на кнопке Write XML формы проекта ADO-XML. Внесенные в таблицу Stores изменения выделены полужирным начертанием. Удаленная запись отсутствует в разделе текущих данных, но присутствует в разделе исходного состояния вместе с исходным значением измененной записи. Кроме того, раздел с текущими данными содержит новую запись с отметкой "inserted" (вставлена).
Листинг 10.6. XML-файл DiffGram.xml в формате DiffGram с одной вставленной записью, одной удаленной записью и одной измененной записью
6380
6871
1994-09-14T00:00:00.0000000+02:00
5
Net 60
BU1032
6380
722a
1994-09-13T00:00:00.0000000+02:00
3
Net 60
PS2091
7066
A2976
1993-05-24T00:00:00.0000000+02:00
50
Net 30
PC8888
7066
QA7442.3
1994-09-13T00:00:00.0000000+02:00
75
ON invoice
PS2091
7067
D4482
1994-09-14T00:00:00.0000000+02:00
10
Net 60
PS2091
7067
P2121
1992-06-15T00:00:00.0000000+02:00
40
Net 30
TC3218
7067
P2121
1992-06-15T00:00:00.0000000+02:00
20
Net 30
TC4203
7067
P2121
1992-06-15T00:00:00.0000000+02:00
20
Net 30
TC7777
713K/stor_id>
N914008
1994-09-14T00:00:00.0000000+02:00
20
Net 30
PS2091
7131
N914014
1994-09-14T00:00:00.0000000+02:00
25
Net 30
MC3021
7131
P3087a
1993-05-29T00:00:00.0000000+02:00
20
Net 60
PS1372
7131
P3087a
1993-05-29T00:00:00.0000000+02:00
25
Net 60
PS2106
7131
P3087a
1993-05-29T00:00:00.0000000+02:00
15
Net 60
PS3333
7131
P3087a
1993-05-29T00:00:00.0000000+02:00
25
Net 60
PS7777
7896
QQ2299
1993-10-28T00:00:00.0000000+02:00
15
Net 60
BU7832
7896
TQ456
1993-12-12T00:00:00.0000000+02:00
10
Net 60
MC2222
7896
X999
1993-02-21T00:00:00.0000000+02:00
35
ON invoice
BU2075
8042
423LL922
1994-09-14T00:00:00.0000000+02:00
15
ON invoice
MC3021
8042
<���оrd_num>423LL930
1994-09-14T00:00:00.0000000+02:00
10
ON invoice
BU1032
8042
P723
1993-03-11T00:00:00.0000000+02:00
25
Net 30
BU1111
8042
QA879.1
1993-05-22T00:00:00.0000000+02:00
30
Net 30
PC1035
999
Eric the Read Books
788 Catamaugus Ave.
Seattle
WA
98056
7067
News & Brews
577 First St.
Los Gatos
CA
96745
7131
Doc-U-Mat: Quality Laundry and Books
24-A Avogadro Way
Remulade
WA
98014
7896
Fricative Bookshop
89 Madison St.
Fremont
CA
90019
8042
Bookbeat
679 Carson St.
Portland
OR
89076
New Store
6380
Eric the Read Books
788 Catamaugus Ave.
Seattle
WA
98056
7066
Barnum's
567 Pasadena Ave.
Tustin
CA
92789
НА ЗАМЕТКУ
Для сохранения только измененных записей в формате DiffGram следует использовать метод GetChanges:
Dim ChangedDataSet = dsSales.GetChanges()
ChangedDataSet.WriteXml("..\Changes.xml", XmlWriteMode.DiffGram)
В листинге 10.7 приведено содержимое файла DiffGram.xml, полученного в pезультате выполнения этого метода.
Листинг 10.7. XML-файл changes.xml в формате DiffGram только с измененными записями
999
Eric the Read Books
788 Catamaugus Ave.
Seattle
WA
98056
New Store
6380
Eric the Read Books
788 Catamaugus Ave.
Seattle
WA
98056
7066
Barnum's
567 Pasadena Ave.
Tustin
CA
92789
Бизнес-ситуация 10.1: подготовка XML-файлов для бизнес-партнеров
Компания Jones Novelty обменивается информацией с помощью электронных средств передачи данных со многими своими поставщиками и партнерами. Развитие этой тенденции, вероятно, приведет к тому, что компании придется спустя какое-то время применить качественно новое решение, например систему Microsoft BizTalk Server. В настоящее время Брэд Джонс стремится удовлетворить текущие потребности и сохранить конкурентоспособность, применяя XML для передачи транзакций. Для этого будут использованы уже описанные возможности XML и ряд других, которые описываются далее. Следует отметить, что многие требования можно удовлетворить даже без использования "мощных и тяжеловесных" платформ, инструментов и технологий, например XSLT.
Читать дальше