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 primo metodo usa il AdomdCommand costruttore , che può eseguire un comando nell'origine dati e AdomdConnection un oggetto su cui eseguire il comando.
Il secondo metodo usa il CreateCommand metodo dell'oggetto AdomdConnection .
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();
}