針對分析資料來源執行命令
建立分析資料來源的連接後,您可以使用 AdomdCommand 物件,針對該資料來源執行命令並從中傳回結果。 這些命令可以透過使用多維度運算式 (MDX)、資料採礦延伸模組 (DMX) 甚或是有限的 SQL 語法,來擷取資料。 此外,您可以使用 Analysis Services 指令碼語言 (ASSL) 命令修改基礎資料庫。
建立命令
在執行命令之前,您必須先建立它。 您可以使用以下兩種方法之一來建立命令:
第一個方法是使用 AdomdCommand 建構函式,它會接受要在資料來源執行的命令以及執行命令所在的 AdomdConnection 物件做為參數。
第二個方法是使用 AdomdConnection 物件的 CreateCommand 方法。
可以使用 CommandText 屬性來查詢和修改要執行的命令文字。 您建立的命令不必在執行之後傳回資料。
執行命令
在建立 AdomdCommand 物件之後,您的命令可以使用數種 Execute 方法以執行各種動作。 下表列出其中一些動作。
若要 |
使用這個方法 |
---|---|
傳回結果做為資料流 |
ExecuteReader 會傳回 AdomdDataReader 物件 |
傳回 CellSet 物件 |
|
執行不會傳回資料列的命令 |
|
傳回 XMLReader 物件,這個物件包含 XML for Analysis (XMLA) 相容格式的資料 |
執行命令的範例
此範例使用 AdomdCommand 執行 XMLA 命令,這個命令將會處理在本機伺服器上的 Adventure Works DW Cube,而不會傳回資料。
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=\"https://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();
}