Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De XmlReader-klasse, die deel uitmaakt van de System.Xml-naamruimte voor de .NET Framework Class Library, is vergelijkbaar met de AdomdDataReader klasse. Beide klassen bieden snelle, niet-in cache opgeslagen, alleen-doorstuurtoegang tot gegevens. Als u geen in-memory, analytische weergave van de gegevens nodig hebt met behulp van het CellSet object, is het XmlReader-object perfect voor het ophalen van XML-gegevens, met name voor grote hoeveelheden gegevens. Omdat XmlReader gegevens streamt, hoeft deze niet alle gegevens op te halen en op te cachen voordat de gegevens aan de aanroeper worden weergegeven. Als u daarentegen een CellSet object gebruikt om de XML voor analysereactie te converteren naar een analytische objectmodelweergave, moet u wachten tot alle gegevens in de cache zijn opgeslagen.
De XmlReader-klasse biedt directe toegang tot het XML for Analysis-antwoord dat is ontvangen door ADOMD.NET wanneer de ExecuteXmlReader methode van het AdomdCommand object wordt aangeroepen. Omdat de opgehaalde gegevens onbewerkte XML zijn, moet u de gegevens en metagegevens handmatig parseren. Zodra de gegevens zijn opgehaald, moet het XmlReader-object worden gesloten.
Gegevens en metagegevens ophalen
Volg deze stappen om gegevens op te halen met behulp van de XmlReader klasse:
Maak een nieuw exemplaar van het object.
Roep de Execute of ExecuteXmlReader methode op het AdomdCommand object aan om een
XmlReaderexemplaar te maken.Gegevens ophalen.
Nadat de opdracht de query uitvoert en een XmlReader retourneert, parseert u de gegevens en metagegevens. De XML-gegevens en metagegevens hebben de systeemeigen indeling die wordt gebruikt door de XML for Analysis-provider. Voor de meeste XML for Analysis-providers is de systeemeigen indeling de MDDataSet-indeling. De MDDataSet-indeling biedt zowel gegevens als metagegevens voor cellensets in een goed gestructureerde indeling. Zie de XML voor analysespecificatie voor meer informatie over de MDDataSet-indeling .
Sluit de lezer.
Roep de Close methode aan wanneer u klaar bent met het XmlReader-object . Zolang een XmlReader geopend is, heeft deze exclusieve toegang tot het object AdomdConnection dat de opdracht uitvoert. U kunt geen opdrachten uitvoeren met behulp van die <xref:Microsoft. AnalysisServices.AdomdClient.AdomdConnection>, inclusief het maken van een andere XmlReader ofAdomdDataReader, totdat u de oorspronkelijke XmlReader sluit.
Gegevens ophalen uit XmlReader
In het volgende voorbeeld wordt een opdracht uitgevoerd, worden gegevens opgehaald als xmlReader en wordt de inhoud naar de console geschreven.
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();
}