Partilhar via


Passar Parâmetros para Updategrams (SQLXML 4.0)

Aplica-se a:SQL ServerBanco de Dados SQL do Azure

Os updategrams são modelos; Assim, pode passar-lhes os parâmetros. Para mais informações sobre a passagem de parâmetros para modelos, consulte Considerações de Segurança do Updategram (SQLXML 4.0).

Os updategrams permitem passar NULL como valor de parâmetro. Para passar o valor do parâmetro NULL, especifica-se o atributo valor nulo . O valor atribuído ao atributo nulo é então fornecido como valor do parâmetro. Os updategrams tratam este valor como NULL.

Observação

Em <sql:header> e <updg:header>, deves especificar o valor nulo como não qualificado; enquanto no <updg:sync>, especificas o valor nulo como qualificado (por exemplo, updg:valor nulo).

Examples

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

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

A. Passar parâmetros para um updategram

Neste exemplo, o updategram altera o apelido de um colaborador na tabela HumanResources.Shift. O updategram recebe dois parâmetros: ShiftID, que é usado para identificar de forma única um shift, 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 updategram
  1. Copie o updategram acima para o Notepad e guarde-o no ficheiro como UpdategramWithParameters.xml.

  2. Prepare o script de teste SQLXML 4.0 (Sqlxml4test.vbs) ao usar 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. Passar NULL como valor de parâmetro a um updategram

Ao executar um updategram, o valor "isnull" é atribuído ao parâmetro que pretende definir como NULL. O Updategram converte o valor do parâmetro "isnulll" em NULL e processa-o em conformidade.

O seguinte updategram define o título do 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 updategram acima para o Notepad e guarde-o no ficheiro como UpdategramPassingNullvalues.xml.

  2. Prepare o script de teste SQLXML 4.0 (Sqlxml4test.vbs) ao usar 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)  
    

Ver também

Considerações de segurança do Updategram (SQLXML 4.0)