Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco 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:
- Os exemplos usam mapeamento por defeito (ou seja, nenhum esquema de mapeamento é especificado no updategram). Para obter mais exemplos de diagramas de atualização que usam esquemas de mapeamento, consulte Especificando um esquema de mapeamento anotado em um diagrama de atualização (SQLXML 4.0).
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
Copie o updategram acima para o Notepad e guarde-o no ficheiro como UpdategramWithParameters.xml.
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 = outStreamcmd.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
Copie o updategram acima para o Notepad e guarde-o no ficheiro como UpdategramPassingNullvalues.xml.
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 = outStreamcmd.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)