1.进入VS2005,点击“视图”菜单 下的“服务器资源管理器”
2.在“服务器资源管理器”的项目树 上 右键点选“数据连接”
选择“添加连接” 打开的“添加连接”对话框
3.在打开的对话框 点选“更改”按钮 以 更改数据源
4.在打开的“更改数据源”对话框
在“数据源” 列表中 选择“<其它>”
在“数据提供程序”列表中 选择 “用于 OLE DB的.NET Framework数据提供程序”
点击“确定”按钮 关闭当前的“更改数据源”对话框
画面 返回到刚才的“添加连接”对话框
5.在“添加连接”对话框 的 “OLE DB 提供程序”处
选择“Microsoft OLE DB Provider for Olap Services 8.0”
也可以 点选其后的“数据链接”按钮 进行更细化的设置
6.输入服务器名及位置;
如服务器名 127.0.0.1或localhost
位置 127.0.0.1 或空
7.点击下方的“测试连接”按钮 进行连接测试
8.选择“登录服务器”的方式 及 填写相关设置
如 “使用特定的用户名和密码”
9.在“初始目录”处 选择数据仓库数据库 如“mini”
10. 点选“高级”按钮 进行连接的查看 设置
11. 点击“确定” 完成 新数据连接的创建
目前效果图如下:
12.可以看到 原数据仓库数据库下的多维数据集
在这里以“表”的形式呈现
维度表和事实表融合在了一起
维度表字段形如 dateList:月!NAME ,
dateList:月!KEY,dateList:月!UNIQUE_NAME
事实表的度量值形如 Measures:Pay Price
13.右键点选所谓的“表”(多维数据集) 可以选择
“显示表数据” 和 “新建查询”
14.右键点选“新建查询” 打开 查询设计器
添加相关表payList
选择相关字段 组织查询语句
部分示例如下:
SELECT DISTINCT [dateList:月!KEY] FROM payList
结果为 9
SELECT DISTINCT [dateList:月!UNIQUE_NAME] FROM payList
结果为 [dateList].[所有 dateList].[2006].[Quarter 3].[09]
SELECT DISTINCT [dateList:月!NAME] FROM payList
结果为 09
SELECT [familyList:Family Id!KEY], [Measures:Pay Price],
[dateList:日!KEY] FROM payList
得到 每个家庭在本数据库(表)的所有购物支出记录
可以对上述语句的结果 进行汇总 分组
得到 每个家庭每月总的购物消费支出
=========
查看上述OLE DB 的数据连接的属性可得知其连接字串为
Provider=MSOLAP.2;Data Source=192.168.0.36;
User ID=sa;Initial Catalog=mini
通过上述的演练
相信也可以通过C#等程序 对OLAP多维数据集进行利用
{
string strConn = " Provider=MSOLAP.2;Data Source=192.168.0.36;User ID=sa;Initial Catalog=mini";
OleDbConnection OleDbConn = new OleDbConnection(strConn);
OleDbConn.Open();
//Response.Write("当前OleDbConn的状态" + OleDbConn.State.ToString());
//string strComm = "select * from payList";
string strComm = "SELECT [familyList:Family Id!KEY] AS 家庭编号, ";
strComm += " [familyList:Cy Id!NAME] AS 家庭成员, ";
strComm += " [dateList:月!KEY] AS 购物月份, [dateList:日!KEY] AS 购物日期, ";
strComm += " [superMList:Super M Name!KEY] AS 购物地点, [Measures:Pay Price] AS 购物支出 ";
strComm += " FROM payList ";
OleDbDataAdapter da = new OleDbDataAdapter(strComm, OleDbConn);
DataSet ds = new DataSet();
da.Fill(ds);
this.GridView1.DataSource = ds;
this.GridView1.DataBind();
}
-------------
不过 相信OLAP 及数据仓库 不是这样用的 或者这样用并没有发挥数据仓库应起的作用
努力学习中 也希望能得到前辈高手们的指导