Freigeben über


XML-Daten in SQL Server 2000 (ADO.NET)

Aktualisiert: November 2007

Unter Microsoft SQL Server 2000 wurde Unterstützung für XML-Funktionen beim Abrufen von Daten eingeführt. Damit ein XML-Stream direkt von SQL Server 2000 zurückgegeben werden kann, verfügt das SqlCommand-Objekt des .NET Framework-Datenanbieters für SQL Server über die ExecuteXmlReader-Methode. ExecuteXmlReader gibt ein System.Xml.XmlReader-Objekt zurück, das mit den Ergebnissen der für einen SqlCommand angegebenen SQL-Anweisung gefüllt wurde. Weitere Informationen zum XmlReader finden Sie unter den Informationen zur XmlReader-Klasse. ExecuteXmlReader kann nur mit einer Anweisung verwendet werden, die Ergebnisse als XML-Daten zurückgibt. Dies sind z. B. Anweisungen, die die FOR XML-Klausel von SQL Server 2000 enthalten (siehe folgendes Beispiel).

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();

Mit dem DataSet können auch relationale Daten als XML-Daten geschrieben und mit XmlDataDocument synchronisiert werden, um eine relationale und hierarchische Echtzeitanzeige einer einzelnen Datenmenge im Speicher bereitzustellen. Weitere Informationen finden Sie unter Auffüllen eines 'DataSet' durch einen 'DataAdapter' (ADO.NET) und Verwenden von XML in einem 'DataSet' (ADO.NET).

Wenn eine speicherinterne, relationale Ansicht der Daten unter Verwendung des DataSet nicht erforderlich ist, können Sie die ExecuteXmlReader-Methode insbesondere bei großen Datenmengen auch zum Abrufen von XML-Daten verwenden. Da es sich bei ExecuteXmlReader um eine Streaming-API handelt, müssen die Daten vor dem Verfügbarmachen für den Aufrufer nicht abgerufen und zwischengespeichert werden, wie dies im Gegensatz dazu beim Konvertieren von relationalen Daten in XML-Daten mithilfe eines DataSet der Fall ist.

Schließen des "XmlReader"

Wenn ein XmlReader-Objekt nicht mehr benötigt wird, sollte immer die Close-Methode aufgerufen werden. Während ein XmlReader geöffnet ist, wird die Connection ausschließlich von diesem XmlReader verwendet. Sie können erst dann wieder Befehle für die Connection ausführen (z. B. Erstellen eines anderen XmlReader oder DataReader), wenn der erste XmlReader geschlossen wurde.

Siehe auch

Konzepte

XML-Daten in SQL Server (ADO.NET)