Condividi tramite


Esecuzione di comandi in un'origine dati analitici

Dopo aver stabilito una connessione a un'origine dati analitica, AdomdCommand è possibile usare un oggetto per eseguire comandi e restituire risultati da tale origine dati. Tali comandi possono recuperare dati tramite istruzioni MDX (Multidimensional Expressions) o DMX (Data Mining Extensions) o tramite una sintassi limitata di SQL. È inoltre possibile utilizzare comandi ASSL (Analysis Services Scripting Language) per modificare il database sottostante.

Creazione di un comando

Prima di eseguire un comando, è necessario crearlo. Per creare un comando, utilizzare uno dei due elementi seguenti:

Il testo del comando da eseguire può essere sottoposto a query e modificato usando la CommandText proprietà . I comandi creati non devono restituire dati dopo l'esecuzione.

Esecuzione di un comando

Dopo aver creato un oggetto AdomdCommand , il Execute comando può usare diversi metodi per eseguire varie azioni. Nella tabella seguente vengono elencate alcune di tali azioni.

Per Metodo da utilizzare
Restituzione di risultati come un flusso di dati ExecuteReader per restituire un AdomdDataReader oggetto
Restituire un CellSet oggetto ExecuteCellSet
Esecuzione di comandi che non restituiscono righe ExecuteNonQuery
Restituire un oggetto XMLReader che contiene i dati in un formato conforme XML for Analysis (XMLA) ExecuteXmlReader

Esempio di esecuzione di un comando

In questo esempio viene AdomdCommand utilizzato per eseguire un comando XMLA che eelaborare il cubo Adventure Works DW nel server locale, senza restituire dati.

        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();
        }