Dati XML in SQL Server 2000 (ADO.NET)

In Microsoft SQL Server 2000 è stato introdotto il supporto della funzionalità XML per il recupero dei dati. Per consentire la restituzione di un flusso XML direttamente da SQL Server 2000, l'oggetto SqlCommand del provider di dati .NET Framework per SQL Server dispone del metodo ExecuteXmlReader. Il metodo ExecuteXmlReader restituisce un oggetto System.Xml.XmlReader compilato con i risultati dell'istruzione SQL specificata per SqlCommand. Per ulteriori informazioni su XmlReader, vedere Classe XmlReader. È possibile utilizzare ExecuteXmlReader solo con un'istruzione che restituisce i risultati come dati XML, quali istruzioni che includono la clausola FOR XML di SQL Server 2000, come illustrato nell'esempio seguente.

Dim command As SqlCommand = New SqlCommand( _
  "SELECT * FROM Customers FOR XML AUTO, ELEMENTS", connection)

Dim reader As System.Xml.XmlReader = command.ExecuteXmlReader()
SqlCommand command = new SqlCommand(
  "SELECT * FROM Customers FOR XML AUTO, ELEMENTS", connection);

System.Xml.XmlReader reader = command.ExecuteXmlReader();

Il DataSet può essere utilizzato anche per scrivere dati relazionali in formato XML e può essere sincronizzato con un XmlDataDocument per fornire una visualizzazione relazionale e gerarchica in tempo reale di un singolo set di dati nella memoria. Per ulteriori informazioni, vedere Compilazione di un DataSet da un oggetto DataAdapter (ADO.NET) e Utilizzo di XML in un DataSet (ADO.NET).

Se non sono necessarie visualizzazioni relazionali dei dati in memoria utilizzando il DataSet, i dati XML possono essere facilmente recuperati con il metodo ExecuteXmlReader, specialmente se si tratta di grandi quantità di dati. Poiché il metodo ExecuteXmlReader è un'API di flusso, esso non deve recuperare e memorizzare nella cache tutti i dati prima di esporli al chiamante, come succederebbe se, per convertire dati relazionali in XML, venisse utilizzato un DataSet.

Chiusura dell'oggetto XmlReader

È necessario chiamare sempre il metodo Close una volta terminato l'utilizzo dell'oggetto XmlReader. Mentre un oggetto XmlReader è aperto, Connection viene utilizzato esclusivamente da tale oggetto. Non è quindi possibile eseguire alcun comando per l'oggetto Connection, compresa la creazione di un altro oggetto XmlReader o DataReader, fino a quando l'oggetto XmlReader originale non viene chiuso.

Vedere anche

Concetti

Dati XML in SQL Server (ADO.NET)