Share via


Obtention de données au format XML à partir de SQL Server

Microsoft SQL Server 2000 introduit la prise en charge de la fonctionnalité XML lors de l'extraction de données. Pour vous permettre de retourner un flux XML directement à partir de Microsoft SQL Server 2000, l'objet SqlCommand du fournisseur de données .NET Framework pour SQL Server dispose de la méthode ExecuteXmlReader. ExecuteXmlReader retourne un objet System.Xml.XmlReader rempli avec les résultats de l'instruction SQL spécifiée pour SqlCommand. Pour plus d'informations sur XmlReader, consultez XmlReader, classe. ExecuteXmlReader peut uniquement être utilisé avec une instruction qui retourne les résultats sous forme de données XML (instructions qui contiennent la clause FOR XML SQL Server 2000 par exemple), comme le montre l'exemple suivant.

Dim custCMD As SqlCommand = New SqlCommand("SELECT * FROM Customers FOR XML AUTO, ELEMENTS", nwindConn)

Dim myXR As System.Xml.XmlReader = custCMD.ExecuteXmlReader()
[C#]
SqlCommand custCMD = new SqlCommand("SELECT * FROM Customers FOR XML AUTO, ELEMENTS", nwindConn);

System.Xml.XmlReader myXR = custCMD.ExecuteXmlReader();

Le DataSet peut par ailleurs être utilisé pour écrire des données relationnelles au format XML et synchronisé avec XmlDataDocument pour fournir une vue relationnelle et hiérarchique en temps réel d'un jeu unique de données en mémoire. Pour plus d'informations, consultez Remplissage d'un DataSet à partir d'un DataAdapter et XML et le DataSet.

Si une vue relationnelle en mémoire des données faisant appel au DataSet n'est pas nécessaire, la méthode ExecuteXmlReader convient parfaitement à l'extraction des données XML, en particulier s'il s'agit d'un volume important de données. Étant donné que ExecuteXmlReader est une API de flux, il n'a pas à extraire ni à mettre en cache toutes les données avant de les exposer à l'appelant, comme ce serait le cas si un DataSet était utilisé pour convertir les données relationnelles en XML.

Fermeture du XmlReader

Vous devez toujours appeler la méthode Close lorsque vous avez fini d'utiliser l'objet XmlReader. Pendant l'ouverture d'un XmlReader, Connection est utilisé en mode exclusif par ce XmlReader. Vous ne pourrez pas exécuter les commandes pour Connection, y compris la création d'un autre XmlReader ou DataReader, jusqu'à la fermeture du XmlReader d'origine.

Voir aussi

SqlCommand, classe | XmlReader, classe | Remplissage d'un DataSet à partir d'un DataAdapter | XML et le DataSet