Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A classe XmlReader , parte do espaço de nomes System.Xml para a Microsoft .NET Framework Class Library, é semelhante à AdomdDataReader classe no sentido em que a classe XmlReader também fornece acesso rápido, sem cache e apenas para avançar, aos dados. Se não houver necessidade de uma visão analítica em memória dos dados usando o CellSet objeto, o objeto XmlReader é perfeito para recuperar dados XML, especialmente para grandes quantidades de dados. Como o XmlReader transmite dados, o XmlReader não precisa de recuperar e armazenar em cache todos os dados antes de expor os dados ao chamador, como aconteceria se um CellSet objeto fosse usado para converter a resposta XML para Análise numa representação do modelo analítico de objetos.
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 bruto, tens de analisar os dados e metadados manualmente. Assim que os dados forem recuperados, o objeto XmlReader deve ser fechado.
Recuperação de Dados e Metadados
Para usar a classe XmlReader para recuperar dados, segue estes passos:
Crie uma nova instância do objeto.
Para criar uma nova instância da classe XmlReader, chama-se o método Execute ou ExecuteXmlReader do objeto AdomdCommand.
Recuperar dados.
Depois de o comando executar a consulta e devolver um XmlReader, deve analisar os dados e metadados. Os dados e metadados XML são apresentados no formato nativo utilizado pelo fornecedor XML for Analysis. Para a maioria dos fornecedores XML para Análise, o formato nativo é o formato MDDataSet . O formato MDDataSet fornece tanto dados como metadados para conjuntos de células num formato bem estruturado. Para mais informações sobre o formato MDDataSet , consulte a especificação XML for Analysis.
Fecha o leitor.
Deves sempre chamar o Close método quando terminares de usar o objeto XmlReader . Enquanto um XmlReader está aberto, esse XmlReader tem uso exclusivo do AdomdConnection objeto que foi usado para executar o comando. Não poderá executar quaisquer comandos usando esse <'xref:Microsoft.AnalysisServices.AdomdClient.AdomdConnection>, incluindo criar outro XmlReader ou AdomdDataReader, até fechar o XmlReader original.
Exemplo de Recuperação de Dados do XmlReader
O exemplo seguinte executa um comando e recupera os dados como um XmlReader, enviando o conteúdo do ficheiro para a 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();
}