Pasar parámetros a diagramas de actualización (SQLXML 4.0)
Los diagramas de actualización son plantillas; por consiguiente, se pueden pasar parámetros. Para obtener más información acerca de cómo pasar parámetros a plantillas, vea Consideraciones de seguridad sobre los diagramas 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 que se asigna al atributo nullvalue se proporciona como el valor del parámetro. Los diagramas de actualización tratan este valor como NULL.
Nota
En <sql:header> y <updg:header>, debería especificar nullvalue como no calificado; mientras que en <updg:sync>, debe especificar nullvalue como completo (por ejemplo, updg:nullvalue).
Ejemplos
Para crear ejemplos funcionales usando los ejemplos siguientes, debe cumplir los requisitos que se especifican en Requisitos para ejecutar los 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 usen esquemas de asignación, vea Cómo especificar un esquema de asignación anotado en un diagrama de actualización (SQLXML 4.0).
Las actualizaciones se aplican a las tablas en la base de datos AdventureWorks2008R2. Para obtener más información, vea Consideraciones para instalar ejemplos y bases de datos de ejemplo de SQL Server.
A. Pasar parámetros a un diagrama de actualización
En este ejemplo, el diagrama de actualización cambia el nombre de un turno 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 el 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 SQLXML 4.0 (Sqlxml4test.vbs) en Utilizar ADO para ejecutar consultas SQLXML 4.0 para ejecutar el diagrama de actualización agregando las siguientes líneas 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 trabajo en 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>
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 SQLXML 4.0 (Sqlxml4test.vbs) en Utilizar ADO para ejecutar consultas SQLXML 4.0 para ejecutar el diagrama de actualización agregando las siguientes líneas 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)
Vea también