对分析数据源执行命令
建立与分析数据源的连接后,即可使用 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 多维数据集,且不返回数据。
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();
}