Ausführen von Befehlen für eine analytische Datenquelle
Nachdem Sie eine Verbindung mit einer analytischen Datenquelle hergestellt haben, können Sie ein -Objekt verwenden, AdomdCommand um Befehle für diese Datenquelle auszuführen und Ergebnisse aus dieser Datenquelle zurück zu geben. Diese Befehle können mithilfe von multidimensionalen Ausdrücken (Multidimensional Expressions, MDX), Data Mining-Erweiterungen (DMX) oder einer begrenzten SQL-Syntax Daten abrufen. Darüber hinaus können Sie ASSL-Befehle (Analysis Services Scripting Language) verwenden, um die zugrunde liegende Datenbank zu bearbeiten.
Erstellen eines Befehls
Vor dem Ausführen eines Befehls müssen Sie diesen erstellen. Sie können einen Befehl auf zwei verschiedene Arten erstellen:
Die erste Methode verwendet den Konstruktor AdomdCommand , der einen Befehl zur Ausführung in der Datenquelle verwenden kann, und ein Objekt, AdomdConnection für das der Befehl ausgeführt werden soll.
Die zweite Methode verwendet die CreateCommand -Methode des - AdomdConnection Objekts.
Der Text des auszuführenden Befehls kann mithilfe der -Eigenschaft abgefragt und geändert CommandText werden. Die Befehle, die Sie erstellen, müssen keine Daten zurückgeben, nachdem sie ausgeführt wurden.
Ausführen eines Befehls
Nachdem Sie ein Objekt erstellt haben AdomdCommand , gibt es mehrere Execute Methoden, mit denen Ihr Befehl verschiedene Aktionen ausführen kann. In der folgenden Tabelle werden einige dieser Aktionen aufgeführt.
Beschreibung | Verwenden Sie diese Methode |
---|---|
Zurückgeben von Ergebnissen als Datenstrom | ExecuteReader , um ein Objekt zurück AdomdDataReader zu geben |
Zurückgeben eines - CellSet Objekts | ExecuteCellSet |
Ausführen von Befehlen, die keine Zeilen zurückgeben | ExecuteNonQuery |
Gibt ein XMLReader-Objekt zurück, das die Daten in einem XML for Analysis(XMLA)-konformen Format enthält. | ExecuteXmlReader |
Beispiel für das Ausführen eines Befehls
In diesem Beispiel wird verwendet AdomdCommand , um einen XMLA-Befehl auszuführen, der den Adventure Works DW-Cube auf dem lokalen Server ohne Rückgabe von Daten verarbeiten wird.
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();
}