Esecuzione di comandi in un'origine dati analitici
Dopo aver stabilito una connessione a un'origine dati analitica, è possibile usare un oggetto per eseguire comandi e restituire AdomdCommand 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 costruttore , che può eseguire un comando nell'origine dati e un oggetto AdomdCommand su cui eseguire il AdomdConnection comando.
Il secondo metodo usa CreateCommand il metodo AdomdConnection dell'oggetto .
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, il comando può usare diversi metodi AdomdCommand Execute 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 utilizzato per eseguire un comando XMLA che eelaborare il cubo AdomdCommand 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();
}