Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La classe XmlReader, qui fait partie de l’espace de noms System.Xml pour la bibliothèque de classes .NET Framework, est similaire à la AdomdDataReader classe. Les deux classes fournissent un accès rapide aux données, sans mise en cache et en lecture séquentielle vers l’avant uniquement. Si vous n’avez pas besoin d’une vue analytique en mémoire des données à l’aide de l’objet CellSet , l’objet XmlReader est parfait pour récupérer des données XML, en particulier pour les grandes quantités de données. Étant donné que XmlReader diffuse des données, il n’est pas obligé de récupérer et de mettre en cache toutes les données avant d’exposer les données à l’appelant. En revanche, si vous utilisez un CellSet objet pour convertir la réponse XML for Analysis en représentation de modèle objet analytique, vous devez attendre que toutes les données soient mises en cache.
La classe XmlReader fournit un accès direct à la réponse XML for Analysis reçue par ADOMD.NET lorsque la ExecuteXmlReader méthode de l’objet AdomdCommand est appelée. Étant donné que les données récupérées sont des données XML brutes, vous devez analyser les données et les métadonnées manuellement. Dès que les données ont été récupérées, l’objet XmlReader doit être fermé.
Récupération des données et des métadonnées
Pour récupérer des données à l’aide de la XmlReader classe, procédez comme suit :
Créez une instance de l’objet.
Appelez la méthode ExecuteXmlReader ou Execute sur l’objet AdomdCommand pour créer une instance de
XmlReader.Récupérer des données.
Une fois que la commande a exécuté la requête et retourné un XmlReader, analysez les données et les métadonnées. Les données et métadonnées XML sont au format natif utilisé par le fournisseur XML for Analysis. Pour la plupart des fournisseurs XML pour Analysis, le format natif est le format MDDataSet . Le format MDDataSet fournit des données et des métadonnées pour les ensembles de cellules dans un format bien structuré. Pour plus d’informations sur le format MDDataSet , consultez la spécification XML for Analysis.
Fermez le lecteur.
Appelez la Close méthode lorsque vous avez terminé d’utiliser l’objet XmlReader . Alors qu’un XmlReader est ouvert, il a une utilisation exclusive de l’objet AdomdConnection qui exécute la commande. Vous ne pouvez pas exécuter de commandes à l'aide de ce <« xref :Microsoft. AnalysisServices.AdomdClient.AdomdConnection>, y compris la création d’un autre XmlReader ou AdomdDataReader, jusqu’à ce que vous fermez le XmlReader d’origine.
Récupérer des données à partir de XmlReader
L’exemple suivant exécute une commande, récupère des données en tant que XmlReader et écrit le contenu dans la console.
void OutputDataWithXML()
{
//Open a connection to the local server.
AdomdConnection conn = new AdomdConnection("Data Source=localhost");
conn.Open();
//Create a command to retrieve the data.
AdomdCommand cmd = new AdomdCommand(@"WITH MEMBER [Measures].[FreightCostPerOrder] AS
[Measures].[Reseller Freight Cost]/[Measures].[Reseller Order Quantity],
FORMAT_STRING = 'Currency'
SELECT [Geography].[Geography].[Country].&[United States].Children ON ROWS,
[Date].[Calendar].[Calendar Year] ON COLUMNS
FROM [Adventure Works]
WHERE [Measures].[FreightCostPerOrder]", conn);
//Execute the command, retrieving an XmlReader.
System.Xml.XmlReader reader = cmd.ExecuteXmlReader();
//Do something with the reader: Parse data, Parse metadata,
// Save for later loading into CellSet, etc.
Console.WriteLine(reader.ReadOuterXml());
//Close the reader, then the connection
reader.Close();
conn.Close();
//Await user input.
Console.ReadLine();
}