Compartir a través de


Ejecutar comandos en un origen de datos analíticos

Después de establecer una conexión a un origen de datos analíticos, puede usar un objeto AdomdCommand para ejecutar con comandos y resultados devueltos de ese origen de datos. Estos comandos pueden recuperar datos mediante expresiones multidimensionales (MDX), extensiones de minería de datos (DMX), o incluso una sintaxis limitada de SQL. Además, puede usar los comandos ASSL (Analysis Services Scripting Language) para modificar la base de datos subyacente.

Crear un comando

Antes de ejecutar un comando, debe crearlo. Puede crear un comando mediante uno de los dos métodos siguientes:

El texto del comando para ejecutar se puede consultar y modificar mediante la propiedad CommandText. Los comandos que crea no tienen que devolver los datos después de ejecutarse.

Ejecutar un comando

Después de crear un objeto AdomdCommand, hay varios métodos Execute que el comando puede usar para realizar varias acciones. En la tabla siguiente se enumeran algunas de estas acciones.

Para

Use este método

Devolver resultados como una secuencia de datos

ExecuteReader para devolver un objeto AdomdDataReader

Devolver un objeto CellSet

ExecuteCellSet

Ejecutar comandos que no devuelven filas

ExecuteNonQuery

Devolver un objeto XMLReader que contiene los datos en un formato compatible de XML for Analysis (XMLA)

ExecuteXmlReader

Ejemplo de cómo ejecutar un comando

En este ejemplo se usa AdomdCommand para ejecutar un comando XMLA que procesará el cubo Adventure Works DW en el servidor local, sin devolver los datos.

        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=\"https://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();
        }