Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die XmlReader-Klasse , Teil des System.Xml-Namespace für die Microsoft .NET Framework-Klassenbibliothek, ähnelt der AdomdDataReader Klasse, in der die XmlReader-Klasse auch schnellen, nicht zwischengespeicherten, vorwärtsgeschützten Zugriff auf Daten bereitstellt. Wenn keine speicherinterne, analytische Ansicht der Daten mit dem CellSet Objekt erforderlich ist, eignet sich das XmlReader-Objekt perfekt zum Abrufen von XML-Daten, insbesondere für große Datenmengen. Da XmlReader Daten streamt, muss XmlReader nicht alle Daten abrufen und zwischenspeichern, bevor die Daten für den Aufrufer verfügbar sind, wie es der Fall wäre, wenn ein CellSet Objekt verwendet würde, um die XML für die Analyseantwort in eine Analyseobjektmodelldarstellung zu konvertieren.
Die XmlReader-Klasse bietet direkten Zugriff auf die xml for Analysis-Antwort, die von ADOMD.NET empfangen wird, wenn die ExecuteXmlReader Methode des AdomdCommand Objekts aufgerufen wird. Da die abgerufenen Daten unformatierte XML-Daten sind, müssen Sie die Daten und Metadaten manuell analysieren. Sobald die Daten abgerufen wurden, sollte das XmlReader-Objekt geschlossen werden.
Abrufen von Daten und Metadaten
Um die XmlReader-Klasse zum Abrufen von Daten zu verwenden, führen Sie die folgenden Schritte aus:
Erstellen Sie eine neue Instanz des Objekts.
Um eine neue Instanz der XmlReader-Klasse zu erstellen, rufen Sie die Execute Oder-Methode ExecuteXmlReader des AdomdCommand Objekts auf.
Daten abrufen.
Nachdem der Befehl die Abfrage ausgeführt und einen XmlReader zurückgegeben hat, müssen Sie die Daten und Metadaten analysieren. Die XML-Daten und -Metadaten werden im systemeigenen Format dargestellt, das vom XML für Analyseanbieter verwendet wird. Für die meisten XML für Analyseanbieter ist das systemeigene Format das MDDataSet-Format . Das MDDataSet-Format stellt sowohl Daten als auch Metadaten für Zellenets in einem gut strukturierten Format bereit. Weitere Informationen zum MDDataSet-Format finden Sie in der XML for Analysis-Spezifikation.
Schließen Sie den Leser.
Sie sollten die Close Methode immer aufrufen, wenn Sie das XmlReader-Objekt verwendet haben. Während ein XmlReader geöffnet ist, verwendet XmlReader ausschließlich das AdomdConnection Objekt, das zum Ausführen des Befehls verwendet wurde. Sie können keine Befehle mit diesem <'xref:Microsoft.AnalysisServices.AdomdClient.AdomdConnection>' ausführen, einschließlich der Erstellung eines anderen XmlReader oder AdomdDataReader, bis Sie den ursprünglichen XmlReader schließen.
Beispiel für das Abrufen von Daten aus dem XmlReader
Im folgenden Beispiel wird ein Befehl ausgeführt und die Daten als XmlReader abgerufen, wobei der Inhalt der Datei in die Konsole ausgegeben wird.
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();
}