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, AdomdCommand puede usar un objeto para ejecutar comandos en y devolver resultados 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.

Creación de 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 que se va a ejecutar se puede consultar y modificar mediante la CommandText propiedad . 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 Execute métodos que el comando puede usar para realizar varias acciones. En la tabla siguiente se enumeran algunas de estas acciones.

En Use este método
Devolver resultados como un flujo de datos ExecuteReader para devolver un AdomdDataReader objeto
Devolver un CellSet objeto ExecuteCellSet
Ejecutar comandos que no devuelven filas ExecuteNonQuery
Devolver un objeto XMLReader que contiene los datos en un formato compatible XML for Analysis (XMLA) ExecuteXmlReader

Ejemplo de cómo ejecutar un comando

En este ejemplo se usa para AdomdCommand ejecutar un comando XMLA que procesará el cubo Adventure Works DW en el servidor local, sin devolver 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=\"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();
        }