Partilhar via


Executando comandos em uma fonte de dados analíticos

Depois de estabelecer uma conexão com uma fonte de dados analíticas, você pode usar um AdomdCommand ' objeto para executar comandos e retornar os resultados dessa fonte de dados. Esses comandos podem recuperar dados usando MDX (Multidimensional Expressions), DMX (Data Mining Extensions) ou até mesmo uma sintaxe limitada de SQL. Além disso, você poderá usar comandos ASSL (Analysis Services Scripting Language) para modificar o banco de dados subjacente.

Criando um comando

Antes de executar um comando, você deverá criá-lo. Você pode criar um comando usando um destes métodos:

O texto do comando a ser executado pode ser consultado e modificado usando a CommandText propriedade. Os comandos criados por você não precisam retornar dados depois de executados.

Executando um comando

Depois de criar um AdomdCommand objeto, há vários Execute métodos que o comando pode usar para executar várias ações. A tabela a seguir lista algumas dessas ações.

Para Use este método
Retornar resultados como um fluxo de dados ExecuteReader para retornar um AdomdDataReader objeto
Retornar um CellSet objeto ExecuteCellSet
Executar comandos que não retornam linhas ExecuteNonQuery
Retornar um objeto XmlReader que contém os dados em um formato em conformidade com o XML for Analysis (XMLA) ExecuteXmlReader

Exemplo de execução de um comando

Este exemplo usa o AdomdCommand para executar um comando XMLA que processará o cubo Adventure Works DW no servidor local, sem retornar os dados.

        void ExecuteXMLAProcessCommand()
        {
            //Open a connection to the local server
            AdomdConnection conn = new AdomdConnection("Data Source=localhost");
            conn.Open();

            //Create a command, and assign it an XMLA command to process the cube.
            AdomdCommand cmd = conn.CreateCommand();
            cmd.CommandText = "<Process xmlns=\"http://schemas.microsoft.com/analysisservices/2003/engine\">\r\n" +
  @"<Object>
    <DatabaseID>Adventure Works DW Standard Edition</DatabaseID>
    <CubeID>Adventure Works DW</CubeID>
  </Object>
  <Type>ProcessFull</Type>
  <WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>";

            //Execute the command
            int result = cmd.ExecuteNonQuery();

            //Close the connection
            conn.Close();
        }