Freigeben über


Löschen von Daten mit XML-Updategrams (SQLXML 4.0)

Ein Updategram zeigt einen Löschvorgang an, wenn eine Datensatzinstanz im <before>-Block, jedoch ohne entsprechende Datensätze im <after>-Block erscheint. In diesem Fall löscht das Updategram den Datensatz im <before>-Block aus der Datenbank.

Dies ist das Updategramformat für einen Löschvorgang:

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <updg:sync [mapping-schema="SampleSchema.xml"]  >
   <updg:before>
       <ElementName />
      [<ElementName .../>... ]
   </updg:before>
    [<updg:after>
    </updg:after>]
  </updg:sync>
</ROOT>

Sie können das <after>-Tag weglassen, wenn das Updategram nur einen Löschvorgang ausführt. Wenn Sie das optionale mapping-schema-Attribut nicht angeben, werden der im Updategram angegebene <ElementName> einer Datenbanktabelle und die untergeordneten Elemente oder Attribute Spalten in der Tabelle zugeordnet.

Wenn das im Updategram angegebene Element entweder mit mehreren Tabellenzeilen oder mit keiner Tabellenzeile übereinstimmt, gibt das Updategram einen Fehler zurück und bricht die Verarbeitung des gesamten <sync>-Blocks ab. Nur ein Datensatz kann gleichzeitig von einem Element im Updategram gelöscht werden.

Beispiele

Die Beispiele in diesem Abschnitt verwenden die Standardzuordnung (d. h. es ist kein Zuordnungsschema im Updategram angegeben). Weitere Beispiele für Updategrams, die Zuordnungsschemas verwenden, finden Sie unter Angeben eines Zuordnungsschemas mit Anmerkungen in einem Updategram (SQLXML 4.0).

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

A.Löschen eines Datensatzes mithilfe eines Updategrams

Die folgenden Updategrams löschen zwei Datensätze aus der Tabelle HumanResources.Shift.

In diesen Beispielen gibt das Updategram kein Zuordnungsschema an. Daher verwendet das Updategram die Standardzuordnung, in der der Elementname einem Tabellennamen, und die Attribute oder untergeordneten Elemente den Spalten in dieser Tabelle zugeordnet werden.

Dieses erste Updategram ist attributzentriert und identifiziert zwei Schichten (Tag/Abend und Abend/Nacht) im <before>-Block. Da es keinen entsprechenden Datensatz im <after>-Block gibt, ist dies ein Löschvorgang.

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
<updg:sync >
  <updg:before>
       <HumanResources.Shift ShiftID="4"
                        Name="Day-Evening"
                        StartTime="1900-01-01 11:00:00.000"
                        EndTime="1900-01-01 19:00:00.000"
                        ModifiedDate="2004-01-01 00:00:00.000" />
       <HumanResources.Shift ShiftID="5"
                        Name="Evening-Night"
                        StartTime="1900-01-01 19:00:00.000"
                        EndTime="1900-01-01 03:00:00.000"
                        ModifiedDate="2004-01-01 00:00:00.000" />
  </updg:before>
  <updg:after>
  </updg:after>
</updg:sync>
</ROOT>

So testen Sie das Updategram

  1. Das vollständige Beispiel B ("Einfügen mehrerer Datensätze mithilfe eines Updategrams") finden Sie unter Einfügen von Daten mit XML-Updategrams (SQLXML 4.0).

  2. Kopieren Sie das oben angegebene Updategram in den Editor, und speichern Sie es unter dem Dateinamen Updategram-RemoveShifts.xml in demselben Ordner, den Sie für den Schritt "Einfügen mehrerer Datensätze mithilfe eines Updategrams" unter Einfügen von Daten mit XML-Updategrams (SQLXML 4.0) verwendet haben.

  3. Erstellen und verwenden Sie das SQLXML 4.0-Testskript (Sqlxml4test.vbs), um das Updategram auszuführen.

    Weitere Informationen finden Sie unter Verwenden von ADO zum Ausführen von SQLXML 4.0-Abfragen.

Siehe auch

Verweis

Sicherheitsüberlegungen zu Updategrams (SQLXML 4.0)