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 il record nel <blocco before> dal database.

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 facoltativomapping-schema, ElementName<> specificato nell'updategram esegue il mapping a una tabella di database e gli elementi o gli attributi figlio eseguono il mapping alle colonne della tabella.

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

Esempio

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

Per creare esempi funzionanti usando gli esempi seguenti, è necessario soddisfare i requisiti specificati in Requisiti per l'esecuzione di esempi 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 precedente> . Poiché nel blocco after> non è presente alcun record< corrispondente, si tratta di 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. Esempio completo B ("Inserimento di più record tramite un updategram") in Inserimento di dati tramite updategram XML (SQLXML 4.0).

  2. Copiare l'updategram precedente nel Blocco note e salvarlo come Updategram-RemoveShifts.xml nella stessa cartella usata per completare ("Inserimento di più record usando un updategram") in Inserimento di dati tramite updategram XML (SQLXML 4.0) .

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

    Per altre informazioni, vedere Uso di ADO per eseguire query SQLXML 4.0.

Vedere anche

Considerazioni sulla sicurezza degli updategram (SQLXML 4.0)