Condividi tramite


Eliminazione di dati mediante updategram XML (SQLXML 4.0)

Un updategram indica un'operazione di eliminazione quando un'istanza di record viene visualizzata nel blocco <before> senza record corrispondenti nel blocco <after>. In questo caso l'updategram elimina dal database il record del blocco <before>.

Di seguito viene illustrato il formato dell'updategram per un'operazione di eliminazione:

<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>

È possibile omettere il tag <after> se l'updategram esegue solo un'operazione di eliminazione. Se non si specifica l'attributo mapping-schema facoltativo, l'elemento <ElementName> specificato nell'updategram esegue il mapping a una tabella di database e gli attributi o gli elementi figlio eseguono il mapping alle colonne della tabella.

Se un elemento specificato nell'updategram corrisponde a più di una riga nella tabella o non corrisponde a nessuna riga, l'updategram restituisce un errore e annulla l'intero blocco <sync>. Un elemento dell'updategram può eliminare un solo record per volta.

Esempi

Negli esempi presentati in questa sezione viene utilizzato il mapping predefinito, ovvero non viene specificato alcuno schema di mapping nell'updategram. Per ulteriori esempi di updategram che utilizzano schemi di mapping, vedere Specifica di uno schema di mapping con annotazioni in un updategram (SQLXML 4.0).

Per creare esempi reali utilizzando gli esempi seguenti, è necessario soddisfare i requisiti specificati in Requisiti per l'esecuzione di esempi di SQLXML.

A. Eliminazione di un record mediante un updategram

Negli updategram seguenti vengono eliminati due record dalla tabella HumanResources.Shift.

In questi esempi l'updategram non specifica uno schema di mapping, pertanto utilizza il mapping predefinito nel quale il nome dell'elemento esegue il mapping a un nome di tabella e gli attributi o i sottoelementi eseguono il mapping alle colonne.

Questo primo updategram è incentrato sugli attributi e identifica due turni (giorno-sera e sera-notte) nel blocco <before>. Poiché non c'è alcun record corrispondente nel blocco <after>, questa è un'operazione di eliminazione.

<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>

Per testare l'updategram

  1. Completare l'esempio B ("Inserimento di più record mediante un updategram") in Inserimento di dati mediante updategram XML (SQLXML 4.0).

  2. Copiare l'updategram sopra riportato in Blocco note e salvarlo con il nome Updategram-RemoveShifts.xml nella stessa cartella utilizzata per completare l'esempio "Inserimento di più record mediante un updategram" in Inserimento di dati mediante updategram XML (SQLXML 4.0).

  3. Creare e utilizzare lo script di test SQLXML 4.0 (Sqlxml4test.vbs) per eseguire l'updategram.

    Per ulteriori informazioni, vedere Utilizzo di ADO per eseguire query SQLXML 4.0.