对分析数据源执行命令
与分析数据源建立连接 AdomdCommand 后,可以使用 "object 针对该数据源运行命令并返回结果。 这些命令可使用多维表达式 (MDX)、数据挖掘扩展插件 (DMX) 甚至是有限 SQL 语法来检索数据。 此外,您还可以使用 Analysis Services 脚本语言 (ASSL) 命令修改基础数据库。
创建命令
必须先创建命令,然后才能运行该命令。 可使用下列两种方法之一创建命令:
第一种方法 AdomdCommand 使用 构造函数,该构造函数可以使用命令 AdomdConnection 在数据源中运行,并使用 对象来运行该命令。
第二种方法使用 CreateCommand 对象的 AdomdConnection 方法。
可以使用 属性查询和修改要运行的命令 CommandText 的文本。 您创建的命令无需在运行后返回数据。
运行命令
创建对象后 AdomdCommand ,命令 Execute 可以使用多种方法来执行各种操作。 下表列出了其中的部分操作。
功能 | 方法 |
---|---|
将结果作为数据流返回 | ExecuteReader返回对象AdomdDataReader |
CellSet返回 对象 | ExecuteCellSet |
运行不返回行的命令 | ExecuteNonQuery |
返回 XMLReader 对象,该对象包含 XMLA 格式XML for Analysis (XMLA) 数据 | ExecuteXmlReader |
运行命令示例
此示例使用 运行 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=\"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();
}