B/S 中 Analysis Server 的客户端控制
近来参与的项目相对较多,且都是以前学习、实践相对较少的领域,如涉及 OLAP 方
面的 Analysis Services 一系列,前端数据显示和 OWC 组件,再有的是 Reporting Services
2005(MS 提供的报表项目解决方案)……,一直想找个时间总结下,竟然发现自己始终
不肯留给自己时间,今天好不容易有个闲暇的时间,所以快速的唠叨几句。
如何从 Analysis Server 获取指定 Database 的角色信息在 Web 端显示?如何批量处理控制
Analysis Server?如何……?
要浏览、查看、编辑 Analysis Server 的元数据信息,我们可以通过以下几种途径:
1、 ADOMD.NET(ActiveX Data Objects Multidimensional)
2、 DSO(Decision Support Objects 决策支持对象)
先来描述下这两种东东的简要说明吧
1、 ADOMD.NET
不同于以往的 ADOMD,ADOMD 是基于 OLE DB for OLAP 的一套访问多维数据
的编程接口组件,提供的是标准 COM 接口,在它的下面是 DSO,而 ADOMD.Net
则是.Net 的 Assembly,它的下面是 XMLA。
我们可以通过结合 MDX,来查询 Analysis 元数据信息
2、 DSO(Decision Support Objects 决策支持对象)
主要用于操纵数据仓库的架构
用来实现对 OLAP Server 的管理功能的编程访问(创建和维持 OLAP 对象,建立
数据源连接等等)
关于两者的其他知识可参见:
http://blog.csdn.net/webwalker/archive/2006/12.aspx
要获得 Analysis Server 的角色信息,首先我们要连接到 Server 端,不论是 C/S 模式还
是 B/S 三层、两层模式也好,如下实现:
1、 引用 DSO 对象,添加 namespace:
using DSO;
using System.Runtime.InteropServices;
2、 声明要使用的对象
DSO.Server dsoServer = new DSO.ServerClass();
DSO.MDStore dsoDB = new DSO.MDStoreClass();
DSO.MDStore dsoCube = new DSO.MDStoreClass();
DSO.Database dsoDatabase = new DSO.DatabaseClass();
DSO.Role dsoRole = new DSO.RoleClass();
3、 连接到服务端
dsoServer.Connect(serverName);//服务器名称
这里提到一下,Analysis Server 仅识别 Windows 权限认证,所以在连接到服务端的
前提是,域帐户必需为该服务器 OLAP Administrators 组,系统 Administrators 组拥
有至高无上的权利也没用。