Поделиться через


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

Область применения: SQL Server База данных SQL Azure

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

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

Примечание.

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

Примеры

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

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

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

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

<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")  
    

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

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

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

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">  
<updg:header nullvalue="isnull" >  
  <updg:param name="EmployeeID"/>  
  <updg:param name="ManagerID" />  
</updg:header>  
  <updg:sync >  
    <updg:before>  
       <HumanResources.Employee EmployeeID="$EmployeeID" />  
    </updg:before>  
    <updg:after>  
      <HumanResources.Employee ManagerID="$ManagerID" />  
    </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)  
    

См. также

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