分析データ ソースに対するコマンドの実行
分析データ ソースへの接続を AdomdCommand 確立した後は、 オブジェクトを使用して、 に対してコマンドを実行し、そのデータ ソースから結果を返します。 これらのコマンドによるデータ取得には、多次元式 (MDX)、データ マイニング拡張機能 (DMX)、さらには SQL の一部の構文も使用できます。 また、Analysis Services Scripting Language (ASSL) コマンドを使用して、基になるデータベースを変更することもできます。
コマンドの作成
コマンドを実行するには、まず、そのコマンドを作成する必要があります。 コマンドを作成するには 2 つの方法があります。
最初のメソッドでは、 コンストラクター AdomdCommandAdomdConnection を使用します。このコンストラクターは、データ ソースで実行するコマンドと、コマンドを実行するオブジェクトを取得できます。
2 番目のメソッドは、 オブジェクト CreateCommand の メソッドを使用 AdomdConnection します。
実行するコマンドのテキストは、 プロパティを使用して照会および変更 CommandText できます。 作成するコマンドは、実行後に必ずしもデータを返す必要はありません。
コマンドの実行
オブジェクトを作成した後 AdomdCommand 、 Execute コマンドでさまざまなアクションを実行するために使用できるメソッドがいくつかあります。 次の表は、実行可能な操作の一部を示しています。
終了 | 使用するメソッド |
---|---|
結果をデータのストリームとして返す | ExecuteReader オブジェクトを返す AdomdDataReader 場合 |
オブジェクトを返 CellSet す | ExecuteCellSet |
行を返さないコマンドを実行する | ExecuteNonQuery |
XMLReader オブジェクトを返します。このオブジェクトは、XMLA (xmlA) 準拠XML for Analysisデータを含むオブジェクトです。 | ExecuteXmlReader |
コマンドの実行例
この例では、 を AdomdCommand 使用して、データを返さずにローカル サーバー上の Adventure Works DW キューブを処理する XMLA コマンドを実行します。
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();
}