Share via


Übergeben von Parametern an Updategrams (SQLXML 4.0)

Updategrams sind Vorlagen. Daher können Sie ihnen Parameter übergeben. Weitere Informationen zum Übergeben von Parametern an Vorlagen finden Sie unter Sicherheitsüberlegungen zu Updategrams (SQLXML 4.0).

Mit Updategrams können Sie NULL als Parameterwert übergeben. Um den NULL-Parameterwert zu übergeben, geben Sie das nullvalue-Attribut an. Der Wert, der dem nullvalue-Attribut zugewiesen wird, wird dann als Parameterwert zur Verfügung gestellt. Updategrams behandeln diesen Wert als NULL.

HinweisHinweis

In <sql:header> und <updg:header> geben Sie den nullvalue-Wert als nicht qualifiziert an, während Sie den nullvalue-Wert in <updg:sync> als qualifiziert angeben (z. B. updg:nullvalue).

Beispiele

Damit mithilfe der folgenden Beispiele funktionierende Beispiele erstellt werden können, müssen die in Anforderungen zum Ausführen von SQLXML-Beispielen angegebenen Anforderungen erfüllt sein.

Bevor Sie die Updategrambeispiele verwenden, beachten Sie Folgendes:

A. Übergeben von Parametern an ein Updategram

In diesem Beispiel ändert das Updategram die Bezeichnung einer Schicht in der HumanResources.Shift-Tabelle. An das Updategram werden zwei Parameter übergeben: ShiftID zur eindeutigen Identifizierung der Schicht und 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>

So testen Sie das Updategram

  1. Kopieren Sie das oben angegebene Updategram in Editor, und speichern Sie es als Datei unter UpdategramWithParameters.xml.

  2. Bereiten Sie das SQLXML 4.0-Testskript (Sqlxml4test.vbs) in Verwenden von ADO zum Ausführen von SQLXML 4.0-Abfragen auf die Ausführung des Updategram vor. Fügen Sie die folgenden Zeilen an cmd.Properties("Output Stream").Value = outStream an:

     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. Übergeben von NULL als Parameterwert an ein Updategram

Durch Ausführen eines Updategrams wird der Wert "isnull" dem Parameter zugewiesen, der auf NULL gesetzt werden soll. Das Updategram konvertiert den "isnulll"-Parameterwert in NULL und verarbeitet ihn entsprechend.

Das folgende Updategram legt die Stellenbezeichnung eines Mitarbeiters auf NULL fest:

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
<updg:header nullvalue="isnull" >
  <updg:param name="OldJobTitle"/>
  <updg:param name="NewJobTitle" />
</updg:header>
  <updg:sync >
    <updg:before>
       <HumanResources.Employee JobTitle="$OldJobTitle" />
    </updg:before>
    <updg:after>
      <HumanResources.Employee JobTitle="$NewJobTitle" />
    </updg:after>
  </updg:sync>
</ROOT>

So testen Sie das Updategram

  1. Kopieren Sie das oben angegebene Updategram in Editor, und speichern Sie es als Datei unter UpdategramPassingNullvalues.xml.

  2. Bereiten Sie das SQLXML 4.0-Testskript (Sqlxml4test.vbs) in Verwenden von ADO zum Ausführen von SQLXML 4.0-Abfragen auf die Ausführung des Updategram vor. Fügen Sie die folgenden Zeilen an cmd.Properties("Output Stream").Value = outStream an:

    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)