Передача параметров для диаграмм обновления (SQLXML 4.0)
Диаграммы обновления представляют собой шаблоны; следовательно, им можно передавать параметры. Дополнительные сведения о передаче параметров в шаблоны см. в разделе Вопросы безопасности диаграмм обновления (SQLXML 4.0).
Диаграммы обновления позволяют передавать значение NULL в качестве значения параметра. Для передачи значения NULL в качестве значения параметра нужно задать атрибут nullvalue
. После этого в качестве значения параметра передается значение, присвоенное атрибуту nullvalue
. В диаграммах обновления это значение рассматривается как NULL.
Примечание
В <sql:header>
и <updg:header>
следует задавать nullvalue
как неполное имя; однако в <updg:sync>
следует задавать nullvalue
в виде полного имени (например, updg:nullvalue
).
Примеры
Чтобы создать рабочие примеры на основе следующих примеров, необходимо выполнить требования, указанные в разделе Требования для выполнения примеров SQLXML.
При использовании примеров диаграмм обновления необходимо учитывать следующие моменты.
- В примерах используется сопоставление по умолчанию (т. е. в диаграмме обновления не задана схема сопоставления). Дополнительные примеры диаграмм обновления, использующих схемы сопоставления, см. в разделе Указание схемы аннотированного сопоставления в диаграмме обновления (SQLXML 4.0).
A. Передача параметров диаграмме обновления
В данном примере диаграмма обновления применяется для изменения фамилии сотрудника в таблице 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>
Тестирование диаграммы обновления
Скопируйте приведенную выше диаграмму обновления в блокнот и сохраните как файл с именем UpdategramWithParameters.xml.
Подготовьте тестовый скрипт 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="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>
Тестирование диаграммы обновления
Скопируйте приведенную выше диаграмму обновления в блокнот и сохраните как файл с именем UpdategramPassingNullvalues.xml.
Подготовьте тестовый скрипт 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)