Удаление данных с помощью диаграмм обновления XML (SQLXML 4.0)
Диаграмма обновления свидетельствует об операции удаления, если экземпляр записи встречается в блоке <before> без соответствующих записей в блоке <after>. В этом случае диаграмма обновления удаляет из базы данных запись в блоке <before>.
Формат диаграммы обновления для удаления операции:
<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram"> <updg:sync [mapping-schema="SampleSchema.xml"] > <updg:before> <ElementName /> [<ElementName .../>... ] </updg:before> [<updg:after> </updg:after>] </updg:sync></ROOT>
Можно опустить тег <after>, если диаграмма обновления выполняет только операцию удаления. Если не указан дополнительный атрибут mapping-schema, <ElementName>, указанный в диаграмме обновления, соответствует таблице базы данных, а дочерние элементы и атрибуты соответствуют столбцам в таблице.
Если элемент, указанный в диаграмме обновления либо равен более, чем одной строке в таблице, либо не равен ни одной строке, диаграмма обновления возвращает ошибку и отменяет весь блок <sync>. В каждый момент времени лишь одна запись может быть удалена элементом в диаграмме обновления.
Примеры
В примерах данного раздела используется сопоставление по умолчанию (то есть в диаграмме обновления схема сопоставления не задана). Некоторые примеры диаграмм обновления, в которых используются схемы сопоставления, см. в разделе Определение схемы с заметками сопоставления в диаграмме обновления (SQLXML 4.0).
Чтобы создать рабочие образцы с использованием следующих примеров, необходимо выполнить требования, перечисленные в разделе Требования к запуску примеров SQLXML.
А. Удаление записи при помощи диаграммы обновления
Следующие диаграммы обновления удаляют две записи из таблицы HumanResources.Shift.
В этих примерах диаграмма обновления не указывает схему сопоставления. Поэтому диаграмма обновления использует сопоставление по умолчанию, в котором имя элемента соответствует имени таблицы, а атрибуты и вложенные элементы соответствуют столбцам.
Первая диаграмма обновления представляет собой атрибутивную модель и обозначает смены (День-Вечер и Вечер-Ночь) в блоке <before>. Так как в блоке <after> нет соответствующей записи, это операция удаления.
<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram"><updg:sync > <updg:before> <HumanResources.Shift ShiftID="4" Name="Day-Evening" StartTime="1900-01-01 11:00:00.000" EndTime="1900-01-01 19:00:00.000" ModifiedDate="2004-01-01 00:00:00.000" /> <HumanResources.Shift ShiftID="5" Name="Evening-Night" StartTime="1900-01-01 19:00:00.000" EndTime="1900-01-01 03:00:00.000" ModifiedDate="2004-01-01 00:00:00.000" /> </updg:before> <updg:after> </updg:after></updg:sync></ROOT>
Тестирование диаграммы обновления
Закончите пример Б ("Вставка нескольких записей при помощи диаграммы обновления") в разделе Вставка данных с помощью диаграмм обновления XML (SQLXML 4.0).
Скопируйте диаграмму обновления, представленную выше, в Блокнот и сохраните ее как Updategram-RemoveShifts.xml в тот же каталог, который использовался для завершения примера ("Вставка нескольких записей при помощи диаграммы обновления") в разделе Вставка данных с помощью диаграмм обновления XML (SQLXML 4.0).
Создайте тестовый сценарий SQLXML 4.0 (Sqlxml4test.vbs) и воспользуйтесь им для выполнения диаграммы обновления.
Дополнительные сведения см. в разделе Использование ADO для выполнения запросов SQLXML 4.0.