对分析数据源执行命令

与分析数据源建立连接 AdomdCommand 后,可以使用 "object 针对该数据源运行命令并返回结果。 这些命令可使用多维表达式 (MDX)、数据挖掘扩展插件 (DMX) 甚至是有限 SQL 语法来检索数据。 此外,您还可以使用 Analysis Services 脚本语言 (ASSL) 命令修改基础数据库。

创建命令

必须先创建命令,然后才能运行该命令。 可使用下列两种方法之一创建命令:

可以使用 属性查询和修改要运行的命令 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();
        }