Sdílet prostřednictvím


Předávání parametrů do updategramů (SQLXML 4.0)

platí pro:SQL Serverazure SQL Database

Updategramy jsou šablony; Proto jim můžete předat parametry. Pro více informací o předávání parametrů do šablon viz Updategram Security Considerations (SQLXML 4.0).

Updategramy umožňují předat NULL jako hodnotu parametru. Pro předání hodnoty parametru NULL určujete atribut nullvalue . Hodnota, která je přiřazena atributu nullvalue , je pak uvedena jako hodnota parametru. Updategramy tuto hodnotu považují za NULL.

Poznámka:

V <sql:header> a <updg:header> byste měli zadat nullvalue jako unqualified; zatímco v <updg:sync> určujete nullvalue jako kvalifikovaný (například updg:nullvalue).

Examples

Pokud chcete vytvořit pracovní ukázky pomocí následujících příkladů, musíte splňovat požadavky uvedené v části Požadavky pro spouštění příkladů SQLXML.

Před použitím příkladů updategramů si všimněte následujícího:

A. Předávání parametrů do updategramu

V tomto příkladu aktualizační gram změní příjmení zaměstnance v tabulce HumanResources.Shift. Updategram je předáván dvěma parametrům: ShiftID, které slouží k jednoznačné identifikaci posunu, a 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>  
Pro testování updategramu
  1. Zkopírujte výše uvedený updategram do Notepadu a uložte ho do souboru jako UpdategramWithParameters.xml.

  2. Připravte testovací skript SQLXML 4.0 (Sqlxml4test.vbs) v Používání ADO pro provádění SQLXML 4.0 dotazů pro spuštění updategramu přidáním následujících řádků za :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. Předání hodnoty NULL jako parametru do updategramu

Při provádění updategramu je hodnota "isnull" přiřazena parametru, který chcete nastavit na NULL. Updategram převede hodnotu parametru "isnulll" na NULL a podle toho ji zpracuje.

Následující aktualizační gram nastavuje zaměstnanecký titul na 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>  
Pro testování updategramu
  1. Zkopírujte výše uvedený updategram do Notepadu a uložte ho do souboru jako UpdategramPassingNullvalues.xml.

  2. Připravte testovací skript SQLXML 4.0 (Sqlxml4test.vbs) v Používání ADO pro provádění SQLXML 4.0 dotazů pro spuštění updategramu přidáním následujících řádků za :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)  
    

Viz také

Důležité informace o zabezpečení updategramu (SQLXML 4.0)