Partilhar via


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:

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
  1. Copie o updategram acima no Bloco de Notas e salve-o em um arquivo como UpdategramWithParameters.xml.

  2. 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
  1. Copie o diagrama de atualização acima no Bloco de Notas e salve-o em um arquivo como UpdategramPassingNullvalues.xml.

  2. 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)