Delen via


Parameters doorgeven aan updategrammen (SQLXML 4.0)

Van toepassing op:SQL ServerAzure SQL Database

Updategrammen zijn sjablonen; Daarom kun je ze parameters geven. Voor meer informatie over het doorgeven van parameters aan sjablonen, zie Updategram Security Considerations (SQLXML 4.0).

Updategrams laten je NULL als parameterwaarde doorgeven. Om de NULL-parameter door te geven, specificeer je het nullwaarde-attribuut. De waarde die aan het nullwaarde-attribuut wordt toegewezen, wordt vervolgens als parameterwaarde gegeven. Updategrams behandelen deze waarde als NULL.

Opmerking

In <sql:header> en <updg:header> moet je de nullwaarde als niet-gekwalificeerd specificeren; terwijl je in <updg:sync> de nullwaarde als gekwalificeerd specificeert (bijvoorbeeld updg:nullvalue).

Voorbeelden

Als u werkvoorbeelden wilt maken met behulp van de volgende voorbeelden, moet u voldoen aan de vereisten die zijn opgegeven in Vereisten voor het uitvoeren van SQLXML-voorbeelden.

Voordat je de voorbeelden van het updategram gebruikt, let op het volgende:

Eén. Parameters doorgeven aan een updategram

In dit voorbeeld verandert het updategram de achternaam van een werknemer in de HumanResources.Shift-tabel. Het updategram krijgt twee parameters: ShiftID, dat wordt gebruikt om een shift uniek te identificeren, en 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>  
Om het updategram te testen
  1. Kopieer het bovenstaande updategram naar Notepad en sla het op als UpdategramWithParameters.xml.

  2. Bereid het SQLXML 4.0 testscript voor (Sqlxml4test.vbs) in Using ADO to execute SQLXML 4.0 Queries om het updategram uit te voeren door de volgende regels toe te voegen na de 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. NULL als parameterwaarde doorgeven aan een updategram

Bij het uitvoeren van een updategram wordt de waarde "isnull" toegewezen aan de parameter die je op NULL wilt zetten. Updategram zet de "isnulll" parameterwaarde om in NULL en verwerkt deze dienovereenkomstig.

Het volgende updategram zet een werknemerstitel op 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>  
Om het updategram te testen
  1. Kopieer het bovenstaande updategram naar Notepad en sla het op als UpdategramPassingNullvalues.xml.

  2. Bereid het SQLXML 4.0 testscript voor (Sqlxml4test.vbs) in Using ADO to execute SQLXML 4.0 Queries om het updategram uit te voeren door de volgende regels toe te voegen na de 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)  
    

Zie ook

Beveiligingsoverwegingen voor Updategram (SQLXML 4.0)