Pasar parámetros a diagramas de actualización (SQLXML 4.0)
Se aplica a: SQL ServerAzure SQL Database
Los diagramas de actualización son plantillas; por consiguiente, se les pueden pasar parámetros. Para obtener más información sobre cómo pasar parámetros a plantillas, vea Updategram Security Considerations (SQLXML 4.0) (Consideraciones de seguridad del diagrama de actualización [SQLXML 4.0]).
Los diagramas de actualización le permiten pasar NULL como un valor del parámetro. Para pasar el valor del parámetro NULL, especifique el atributo nullvalue . A continuación, el valor asignado al atributo nullvalue se proporciona como valor de parámetro. Los diagramas de actualización tratan este valor como NULL.
Nota:
En <sql:header> y <updg:header>, debe especificar el valor null como no calificado; mientras que, en< updg:sync>, se especifica el valor null como calificado (por ejemplo, updg:nullvalue).
Ejemplos
Para crear ejemplos de trabajo con los ejemplos siguientes, debe cumplir los requisitos especificados en Requisitos para ejecutar ejemplos de SQLXML.
Antes de usar los ejemplos del diagrama de actualización, tenga en cuenta lo siguiente:
- En los ejemplos se usa una asignación predeterminada (es decir, ningún esquema de asignación se especifica en el diagrama de actualización). Para obtener más ejemplos de diagramas de actualización que usan esquemas de asignación, vea Especificar un esquema de asignación anotado en un diagrama de actualización (SQLXML 4.0).
A Pasar parámetros a un diagrama de actualización
En este ejemplo, el diagrama de actualización cambia el apellido de un empleado en la tabla HumanResources.Shift. Se pasan dos parámetros al diagrama de actualización: ShiftID, que se usa para identificar de manera única un cambio, y Nombre.
<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>
Para probar el diagrama de actualización
Copie el diagrama de actualización anterior en el Bloc de notas y guárdelo en un archivo como UpdategramWithParameters.xml.
Prepare el script de prueba de SQLXML 4.0 (Sqlxml4test.vbs) en Uso de ADO para ejecutar consultas SQLXML 4.0 para ejecutar el diagrama de actualización agregando las líneas siguientes después de
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. Pasar NULL como un valor del parámetro a un diagrama de actualización
Para ejecutar un diagrama de actualización, el valor "isnull" se asigna al parámetro que se desea establecer en NULL. El diagrama de actualización convierte el valor del parámetro "isnulll" en NULL y lo procesa de forma apropiada.
El diagrama de actualización siguiente establece un puesto de empleado en 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>
Para probar el diagrama de actualización
Copie el diagrama de actualización anterior en el Bloc de notas y guárdelo en un archivo como UpdategramPassingNullvalues.xml.
Prepare el script de prueba de SQLXML 4.0 (Sqlxml4test.vbs) en Uso de ADO para ejecutar consultas SQLXML 4.0 para ejecutar el diagrama de actualización agregando las líneas siguientes después de
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)
Consulte también
Consideraciones de seguridad sobre los diagramas de actualización (SQLXML 4.0)