Transmitindo parâmetros a diagramas de atualização (SQLXML 4.0)
Aplica-se a: SQL Server Banco de Dados SQL do Azure
Os diagramas de atualização (updategrams) são modelos; portanto, é possível passar parâmetros para eles. Para obter mais informações sobre como passar parâmetros para modelos, consulte Considerações de segurança do Updategram (SQLXML 4.0).
Diagramas de atualização permitem passar NULL como um valor de parâmetro. Para passar o valor do parâmetro NULL, especifique o atributo nullvalue . O valor atribuído ao atributo nullvalue é fornecido como o valor do parâmetro. Diagramas de atualização tratam esse valor como NULL.
Observação
Em sql:header> e <updg:header>, você deve especificar o valor nulo como não qualificado; enquanto, em <updg:sync>, você especifica o valor nulo como qualificado (por exemplo, updg:nullvalue).<
Exemplos
Para criar exemplos de trabalho usando os exemplos a seguir, você deve atender aos requisitos especificados em Requisitos para executar exemplos de SQLXML.
Antes de usar os exemplos de diagrama de atualização, observe o seguinte:
- Os exemplos usam mapeamento padrão (quer dizer, nenhum esquema de mapeamento é especificado no diagrama de atualização). Para obter mais exemplos de updategrams que usam esquemas de mapeamento, consulte Especificando um esquema de mapeamento anotado em um Updategram (SQLXML 4.0).
R. Passando parâmetros para um diagrama de atualização
Neste exemplo, o diagrama de atualização altera o sobrenome de um funcionário na tabela HumanResources.Shift. O diagrama de atualização é passado com dois parâmetros: ShiftID, usado para identificar exclusivamente uma troca e 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>
Para testar o diagrama de atualização
Copie o updategram acima no Bloco de Notas e salve-o em um arquivo como UpdategramWithParameters.xml.
Prepare o script de teste SQLXML 4.0 (Sqlxml4test.vbs) em Usando o ADO para executar consultas SQLXML 4.0 para executar o updategram adicionando as seguintes linhas após o
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. Passando NULL como um valor de parâmetro para um updategram
Na execução de um updategram, o valor "isnull" é atribuído ao parâmetro que você deseja definir como NULL. O diagrama de atualização converte o valor do parâmetro "isnulll" em NULL e o processa de acordo.
O seguinte diagrama de atualização define um cargo de funcionário como 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 testar o diagrama de atualização
Copie o diagrama de atualização acima no Bloco de Notas e salve-o em um arquivo como UpdategramPassingNullvalues.xml.
Prepare o script de teste SQLXML 4.0 (Sqlxml4test.vbs) em Usando o ADO para executar consultas SQLXML 4.0 para executar o updategram adicionando as seguintes linhas após o
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)
Confira também
Considerações sobre segurança para diagramas de atualização (SQLXML 4.0)