Freigeben über


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