Передача параметров для диаграмм обновления (SQLXML 4.0)

Диаграммы обновления представляют собой шаблоны; следовательно, им можно передавать параметры. Дополнительные сведения о передаче параметров шаблонам см. в разделе Вопросы безопасности диаграмм обновления (SQLXML 4.0).

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

ПримечаниеПримечание

В <sql:header> и <updg:header> следует задавать nullvalue как неполное имя; однако в <updg:sync> следует задавать nullvalue в виде полного имени (например, updg:nullvalue).

Примеры

Чтобы создать рабочие образцы с использованием следующих примеров, необходимо выполнить требования, перечисленные в разделе Требования к запуску примеров SQLXML.

При использовании примеров диаграмм обновления необходимо учитывать следующие моменты.

А. Передача параметров диаграмме обновления

В данном примере диаграмма обновления применяется для изменения названия рабочей смены в таблице HumanResources.Shift. Диаграмме обновления передаются два параметра: ShiftID, однозначно определяющий рабочую смену, и Name.

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
<updg:header>
  <updg:param name="ShiftID"/>
  <updg:param name="Name" />
</updg:header>
  <updg:sync >
    <updg:before>
       <HumanResources.Shift ShiftID="$ShiftID" />
    </updg:before>
    <updg:after>
      <HumanResources.Shift Name="$Name" />
    </updg:after>
  </updg:sync>
</ROOT>

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

  1. Скопируйте приведенную выше диаграмму обновления в блокнот и сохраните как файл с именем UpdategramWithParameters.xml.

  2. Подготовьте тестовый скрипт SQLXML 4.0 (Sqlxml4test.vbs) в Использование ADO для выполнения запросов SQLXML 4.0 для выполнения диаграммы обновления, добавив следующие строки после cmd.Properties("Output Stream").Value = outStream:

     cmd.NamedParameters = True
    ' CreateParameter arguments: Name, Type, Direction, Size, Value
    cmd.Parameters.Append cmd.CreateParameter("@ShiftID",  2, 1,  0, 1)
    cmd.Parameters.Append cmd.CreateParameter("@Name",   200, 1, 50, "New Name")
    

Б. Передача NULL в качестве значения параметра для диаграммы обновления

При выполнении диаграммы обновления тому параметру, для которого нужно задать значение NULL, присваивается значение «isnull». Диаграмма обновления преобразовывает значение параметра «isnull» в NULL и обрабатывает соответствующим образом.

Следующая диаграмма обновления устанавливает значение NULL для названия должности сотрудника.

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
<updg:header nullvalue="isnull" >
  <updg:param name="OldJobTitle"/>
  <updg:param name="NewJobTitle" />
</updg:header>
  <updg:sync >
    <updg:before>
       <HumanResources.Employee JobTitle="$OldJobTitle" />
    </updg:before>
    <updg:after>
      <HumanResources.Employee JobTitle="$NewJobTitle" />
    </updg:after>
  </updg:sync>
</ROOT>

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

  1. Скопируйте приведенную выше диаграмму обновления в блокнот и сохраните как файл с именем UpdategramPassingNullvalues.xml.

  2. Подготовьте тестовый скрипт SQLXML 4.0 (Sqlxml4test.vbs) в Использование ADO для выполнения запросов SQLXML 4.0 для выполнения диаграммы обновления, добавив следующие строки после cmd.Properties("Output Stream").Value = outStream:

    cmd.NamedParameters = True
    ' CreateParameter arguments: Name, Type, Direction, Size, Value 
    cmd.Parameters.Append cmd.CreateParameter("@EmployeeID", 3, 1, 0, 1)
    cmd.Parameters.Append cmd.CreateParameter("@ManagerID",  3, 1, 0, Null)