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