Skicka parametrar till Updategrams (SQLXML 4.0)

gäller för:SQL ServerAzure SQL Database

Updategrams är mallar; Därför kan du ge dem parametrar. För mer information om hur parametrar skickas till mallar, se Updategram Security Considerations (SQLXML 4.0).

Updategrams låter dig skicka NULL som parametervärde. För att skicka NULL-parametervärdet specificerar du nullvärdesattributet . Värdet som tilldelas nullvärdesattributet anges sedan som parametervärdet. Updategrams behandlar detta värde som NULL.

Anmärkning

I <sql:header> och <updg:header> ska du ange nullvärdet som okvalificerat; medan du i <updg:sync> anger nullvärdet som kvalificerat (till exempel updg:nullvalue).

Examples

Om du vill skapa arbetsexempel med hjälp av följande exempel måste du uppfylla de krav som anges i Krav för att köra SQLXML-exempel.

Innan du använder exemplen med uppdateringsgrammet, notera följande:

A. Att skicka parametrar till ett updategram

I detta exempel ändrar updategrammet efternamnet på en anställd i tabellen HumanResources.Shift. Updategrammet skickas två parametrar: ShiftID, som används för att unikt identifiera en skift, och 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>  
För att testa updategrammet
  1. Kopiera updategrammet ovan till Notepad och spara det som en fil som UpdategramWithParameters.xml.

  2. Förbered SQLXML 4.0-testskriptet (Sqlxml4test.vbs) i Using ADO to Execute SQLXML 4.0 Queries för att köra updategrammet genom att lägga till följande rader efter :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. Att skicka NULL som parametervärde till ett updategram

Vid exekvering av ett updategram tilldelas värdet "isnull" till parametern du vill sätta till NULL. Updategram omvandlar parametervärdet "isnulll" till NULL och bearbetar det därefter.

Följande uppdateringsgram sätter en anställds titel till 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>  
För att testa updategrammet
  1. Kopiera updategrammet ovan till Notepad och spara det som en fil som UpdategramPassingNullvalues.xml.

  2. Förbered SQLXML 4.0-testskriptet (Sqlxml4test.vbs) i Using ADO to Execute SQLXML 4.0 Queries för att köra updategrammet genom att lägga till följande rader efter :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)  
    

Se även

Säkerhetsöverväganden för Updategram (SQLXML 4.0)