Récupération de données à l'aide de XmlReader
la classe xmlreader , qui fait partie de l’espace de noms System.Xml de la bibliothèque de classes de .NET Framework Microsoft, est similaire à la AdomdDataReader classe dans la mesure où la classe XmlReader fournit également un accès rapide, non mis en cache et en avant uniquement aux données. S’il n’est pas nécessaire de disposer d’une vue analytique en mémoire des données à l’aide de l' CellSet objet, l’objet XmlReader est parfait pour la récupération des données XML, en particulier pour les grandes quantités de données. Étant donné que XmlReader diffuse des données, XmlReader n’a pas besoin de récupérer et de mettre en cache toutes les données avant d’exposer les données à l’appelant, comme ce serait le cas si un CellSet objet était utilisé pour convertir la réponse XML for Analysis en une représentation de modèle objet analytique.
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' AdomdCommand objet est appelée. Les données étant récupérées dans un format XML brut, 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 de données et de métadonnées
Pour utiliser la classe XmlReader pour récupérer des données, procédez comme suit :
Créez une nouvelle instance de l'objet.
Pour créer une nouvelle instance de la classe XmlReader , vous appelez la Execute méthode ou ExecuteXmlReader de l' AdomdCommand objet.
Récupérer des données.
Une fois que la commande a exécuté la requête et retourné un XmlReader, vous devez analyser les données et les métadonnées. Les données et les métadonnées XML sont présentées dans le format natif utilisé par le fournisseur XMLA. Pour la plupart des fournisseurs XML for Analysis, le format natif est le format MDDataSet . Le format MDDataSet fournit des données et des métadonnées pour cellules dans un format correctement structuré. Pour plus d’informations sur le format MDDataSet , consultez la spécification XML for Analysis.
Fermez le lecteur.
Vous devez toujours appeler la Close méthode lorsque vous avez terminé d’utiliser l’objet XmlReader . Tandis qu’un XmlReader est ouvert, XmlReader utilise l' AdomdConnection objet qui a été utilisé pour exécuter 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 fermiez le XmlReaderd’origine.
Exemple de récupération de données à partir de XmlReader
L’exemple suivant exécute une commande et récupère les données sous forme de XmlReader, en déplaçant le contenu du fichier sur 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();
}