Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A classe XmlReader, que faz parte do namespace System.Xml da Biblioteca de Classes do .NET Framework, é semelhante à AdomdDataReader classe. Ambas as classes fornecem acesso rápido aos dados, sem cache e somente para frente. Se você não precisar de uma exibição analítica na memória dos dados usando o CellSet objeto, o objeto XmlReader será perfeito para recuperar dados XML, especialmente para grandes quantidades de dados. Como o XmlReader transmite dados, ele não precisa recuperar e armazenar em cache todos os dados antes de expor os dados ao chamador. Por outro lado, se você usar um CellSet objeto para converter a resposta XML for Analysis em uma representação de modelo de objeto analítico, deverá aguardar que todos os dados sejam armazenados em cache.
A classe XmlReader fornece acesso direto à resposta XML for Analysis recebida por ADOMD.NET quando o ExecuteXmlReader método do AdomdCommand objeto é chamado. Como os dados recuperados são XML brutos, você deve analisar os dados e os metadados manualmente. Assim que os dados forem recuperados, o objeto XmlReader deverá ser fechado.
Recuperando dados e metadados
Para recuperar dados usando a XmlReader classe, siga estas etapas:
Crie uma nova instância do objeto.
Chame o método Execute ou ExecuteXmlReader no objeto AdomdCommand para criar uma instância de
XmlReader.Recuperar dados.
Depois que o comando executar a consulta e retornar um XmlReader, analise os dados e os metadados. Os dados XML e os metadados estão no formato nativo usado pelo provedor XML for Analysis. Para a maioria dos provedores XML for Analysis, o formato nativo é o formato MDDataSet . O formato MDDataSet fornece dados e metadados para conjuntos de células em um formato bem estruturado. Para obter mais informações sobre o formato MDDataSet , consulte a especificação XML for Analysis.
Feche o leitor.
Chame o Close método quando terminar de usar o objeto XmlReader . Embora um XmlReader esteja aberto, ele tem o uso exclusivo do AdomdConnection objeto que executa o comando. Você não pode executar nenhum comando usando esse <'xref:Microsoft. AnalysisServices.AdomdClient.AdomdConnection>, incluindo a criação de outro XmlReader ou AdomdDataReader, até que você feche o XmlReader original.
Recuperar dados do XmlReader
O exemplo a seguir executa um comando, recupera dados como um XmlReader e grava o conteúdo no 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();
}