Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La clase XmlReader , parte del espacio de nombres System.Xml para la biblioteca de clases de Microsoft .NET Framework, es similar a la AdomdDataReader clase de que la clase XmlReader también proporciona acceso rápido, no almacenado en caché y de solo avance a los datos. Si no es necesario una vista analítica en memoria de los datos que usan el CellSet objeto , el objeto XmlReader es perfecto para recuperar datos XML, especialmente para grandes cantidades de datos. Dado que XmlReader transmite datos, XmlReader no tiene que recuperar y almacenar en caché todos los datos antes de exponer los datos al autor de la llamada, como sería el caso si se usara un CellSet objeto para convertir la respuesta XML for Analysis en una representación del modelo de objetos analíticos.
La clase XmlReader proporciona acceso directo a la respuesta XML for Analysis recibida por ADOMD.NET cuando se llama al ExecuteXmlReader método del AdomdCommand objeto . Dado que los datos recuperados son XML sin procesar, debe analizar los datos y los metadatos manualmente. Tan pronto como se hayan recuperado los datos, se debe cerrar el objeto XmlReader .
Recuperación de datos y metadatos
Para usar la clase XmlReader para recuperar datos, siga estos pasos:
Cree una nueva instancia del objeto .
Para crear una nueva instancia de la clase XmlReader, llame al método Execute o ExecuteXmlReader del objeto AdomdCommand.
Recuperar datos.
Una vez que el comando ejecuta la consulta y devuelve xmlReader, debe analizar los datos y los metadatos. Los datos y metadatos XML se presentan en el formato nativo que usa el proveedor XML for Analysis. Para la mayoría de los proveedores de XML for Analysis, el formato nativo es el formato MDDataSet . El formato MDDataSet proporciona datos y metadatos para los conjuntos de celdas en un formato bien estructurado. Para obtener más información sobre el formato MDDataSet , vea la especificación XML for Analysis.
Cierre el lector.
Siempre debe llamar al Close método cuando haya terminado de usar el objeto XmlReader . Mientras un XmlReader está abierto, XmlReader tiene un uso exclusivo del objeto AdomdConnection que se usó para ejecutar el comando. No podrá ejecutar ningún comando con " <xref:Microsoft.AnalysisServices.AdomdClient.AdomdConnection>, incluida la creación de otro XmlReader o AdomdDataReader, hasta que cierre el XmlReader original.
Ejemplo de recuperación de datos de XmlReader
En el ejemplo siguiente se ejecuta un comando y se recuperan los datos como XmlReader, lo que genera el contenido del archivo en la consola.
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();
}