Compartilhar via


Passando parâmetros para updategrams (SQLXML 4.0)

Os updategramas são modelos; portanto, você pode passá-los parâmetros. Para obter mais informações sobre como passar parâmetros para modelos, consulte Considerações de segurança do Updategram (SQLXML 4.0).

Os updategramas permitem que você passe NULL como um valor de parâmetro. Para passar o valor do parâmetro NULL, especifique o nullvalue atributo. O valor atribuído ao nullvalue atributo é fornecido como o valor do parâmetro. Os updategramas tratam esse valor como NULL.

Observação

In <sql:header> and <updg:header>, you should specify the nullvalue as unqualified; whereas, in <updg:sync>, you specify the nullvalue as qualified (for example, updg:nullvalue).

Exemplos

Para criar exemplos de trabalho usando os exemplos a seguir, você deve atender aos requisitos especificados em Requisitos para executar exemplos SQLXML.

Antes de usar os exemplos de updategram, observe o seguinte:

Um. Passando parâmetros para um updategram

Neste exemplo, o diagrama de atualização altera o sobrenome de um funcionário na tabela HumanResources.Shift. O diagrama de atualização é passado dois parâmetros: ShiftID, que é usado para identificar exclusivamente uma mudança e Nome.

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

  2. Prepare o script de teste SQLXML 4.0 (Sqlxml4test.vbs) no uso do ADO para executar consultas SQLXML 4.0 para executar o updategram adicionando as seguintes linhas após: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

Ao executar um updategram, o valor "isull" é atribuído ao parâmetro que você deseja definir como NULL. O updategram converte o valor do parâmetro "isnulll" em NULL e o processa adequadamente.

O seguinte updategram define um título 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 updategram
  1. Copie o diagrama de atualização acima no Bloco de Notas e salve-o no arquivo como UpdategramPassingNullvalues.xml.

  2. Prepare o script de teste SQLXML 4.0 (Sqlxml4test.vbs) no uso do ADO para executar consultas SQLXML 4.0 para executar o updategram adicionando as seguintes linhas após: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 Também

Considerações sobre segurança do updategram (SQLXML 4.0)