Удаление данных с помощью диаграмм обновления 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.

В этих примерах диаграмма обновления не указывает схему сопоставления. Поэтому диаграмма обновления использует сопоставление по умолчанию, в котором имя элемента соответствует имени таблицы, а атрибуты и вложенные элементы соответствуют столбцам.

Первая диаграмма обновления представляет собой атрибутивную модель и обозначает две смены (Day-Evening и Evening-Night) в блоке <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>

Тестирование диаграммы обновления

  1. Полный пример Б («Вставка нескольких записей с помощью диаграммы обновления») см. в разделе Вставка данных с помощью диаграмм обновления XML (SQLXML 4.0).

  2. Скопируйте диаграмму обновления, представленную выше, в приложение «Блокнот» и сохраните ее в файле Updategram-RemoveShifts.xml в тот же каталог, который использовался для завершения примера «Вставка нескольких записей с помощью диаграммы обновления» в разделе Вставка данных с помощью диаграмм обновления XML (SQLXML 4.0).

  3. Создайте тестовый скрипт SQLXML 4.0 (Sqlxml4test.vbs) и воспользуйтесь им для выполнения диаграммы обновления.

    Дополнительные сведения см. в разделе Использование ADO для выполнения запросов SQLXML 4.0.

См. также

Справочник

Вопросы безопасности диаграмм обновления (SQLXML 4.0)