SSAS系列——【08】多维数据(程序展现Cube)

原文:SSAS系列——【08】多维数据(程序展现Cube)

1、引用DLL?

按照之前安装的MS SQLServer的步骤安装完成后,发现在新建的项目中“Add Reference”时居然找不到Microsoft.AnalysisServices.AdomdClient命名空间,不知道是什么状况?只好添加DLL了,在“C:\Program Files\Microsoft.NET\ADOMD.NET\100\Microsoft.AnalysisServices.AdomdClient.dll”下找到了该文件,该文件的最后修改时间是2009年3月30日,534KB。如图:

图 AdomdClient.dll的磁盘路径

2、连接字符串?

本人觉得这一块和ADO.NET没有太大的区别,此处我使用的连接字符串是:Provider=SQLNCLI10.1;Data Source=localhost;Integrated Security=SSPI;Initial Catalog=BPDW; ,该字符串可以在数据源设计器中找到,所以根本无需记忆,会找即可。

图 连接字符串

3、第一个程序

代码

string ReturnCommandUsingCellSet()    {        //Create a new string builder to store the results        System.Text.StringBuilder result = new System.Text.StringBuilder();        //Connect to the local server        using (AdomdConnection conn = new AdomdConnection("Provider=SQLNCLI10.1;Data Source=localhost;Integrated Security=SSPI;Initial Catalog=BPDW;"))        {            conn.Open();            //Create a command, using this connection            AdomdCommand cmd = conn.CreateCommand();            cmd.CommandText = @"select {[Measures].[Oil Proved Reserves]} on columns ,{[Dim Time].[年份].&[19]} on rows from [BPDW]where [Dim Geography].[国家名称].&[Total Asia Pacific]&[China]";            //Execute the query, returning a cellset            CellSet cs = cmd.ExecuteCellSet();            //Output the column captions from the first axis            //Note that this procedure assumes a single member exists per column.            result.Append("\t");            TupleCollection tuplesOnColumns = cs.Axes[0].Set.Tuples;            foreach (Microsoft.AnalysisServices.AdomdClient.Tuple column in tuplesOnColumns)            {                result.Append(column.Members[0].Caption + "\t");            }            result.AppendLine();            //Output the row captions from the second axis and cell data            //Note that this procedure assumes a two-dimensional cellset            TupleCollection tuplesOnRows = cs.Axes[1].Set.Tuples;            for (int row = 0; row < tuplesOnRows.Count; row++)            {                result.Append(tuplesOnRows[row].Members[0].Caption + "\t");                for (int col = 0; col < tuplesOnColumns.Count; col++)                {                    result.Append(cs.Cells[col, row].FormattedValue + "\t");                }                result.AppendLine();            }            conn.Close();            return result.ToString();        } // using connection    }
时间: 2024-10-12 02:21:04

SSAS系列——【08】多维数据(程序展现Cube)的相关文章

SSAS系列&mdash;&mdash;【07】多维数据(查询Cube)

原文:SSAS系列——[07]多维数据(查询Cube) 1.什么是MDX? MDX叫做"多维表达式",是一种查询语言,是一种和SQL类似的查询语言,它基于 XML for Analysis (XMLA) 规范,并带有特定于 SQL Server Analysis Services 的扩展. 2.MDX与SQL有什么区别? 学东西,总是喜欢"先入为主",在学习MDX的时候我第一个想法是:MDX与SQL有什么区别?其实搞清楚这个问题后,MDX是什么也就算搞清楚了.SQL

SSAS系列——【06】多维数据(创建Cube)

原文:SSAS系列--[06]多维数据(创建Cube) 1.文件类型说明 项目定义文件 (.dwproj).项目用户设置 (.dwproj.user).数据源文件 (.ds).数据源视图文件 (.dsv).多维数据集文件 (.cube).分区文件 (.partitions).维度文件 (.dim).挖掘结构文件 (.dmm).数据库文件 (.database).数据库角色文件 (.role).第一次启动,纪念贴. 图 启动界面 留念 图 默认文件夹中内容 2.创建数据源.数据源视图.维度.定义和

SSAS系列——【03】多维数据(多维数据集对象)

原文:SSAS系列--[03]多维数据(多维数据集对象) 1.什么是Cube? 简单 Cube 对象由基本信息.维度和度量值组组成. 基本信息包括多维数据集的名称.多维数据集的默认度量值.数据源和存储模式等.维度是多维数据集中使用的实际维度组.所有维度都必须先在数据库的维度集合中定义,然后才能在多维数据集中引用.度量值组是多维数据集中的度量值集.度量值组是具有常见数据源视图和维度集的度量值的集合.度量值组是度量值的处理单元:可先对度量值组进行单独处理,然后再浏览.这个概念MSND解释的非常清楚,

SSAS系列&mdash;&mdash;【04】多维数据(物理体系结构)

原文:SSAS系列——[04]多维数据(物理体系结构) 1.本地多维数据集 本地多维数据集和本地挖掘模型允许在客户端工作站与网络的连接断开时对该工作站进行分析.在与本地多维数据集进行交互时,ADMOD.NET 和 Analysis Management Objects (AMO) 也将加载本地多维数据集引擎.只有一个进程可以访问本地多维数据集文件,这是因为本地多维数据集引擎建立到本地多维数据集的连接时将以独占方式锁定本地多维数据集文件.对于一个进程,最多允许同时有五个连接.一个 .cub 文件可

SSAS系列&mdash;&mdash;【02】多维数据(维度对象)

原文:SSAS系列——[02]多维数据(维度对象) 1.维度是什么? 数学中叫参数,物理学中是独立的时空坐标的数目.0维是一点,1维是线,2维是一个长和宽(或曲线)面积,3维是2维加上高度形成体积面.在物理学上时间是第四维,与三个空间维不同的是,它只有一个,且只能往一方向前进. 图一 MSDN中关于维度的概念 2.服务器对象的内容? 包括数据源.数据视图.数据库对象.安全角色和程序集.前4个都不难理解.关于程序集的概念,还需加强一下,程序集可为两种不同的类型:COM 和 CLR.CLR 程序集是

SSAS系列——【05】多维数据(编程体系结构)

原文:SSAS系列--[05]多维数据(编程体系结构) 1.什么是AMO? 翻译:AMO是SSAS中一个完整的管理类集合,它在Microsoft.AnalysisServices命名空间下,我们可以在"\100\SDK\Assemblies\AnalysisServices.dll”中找到.使用AMO我们能够增删修改Cube.dimensions.Mining structure,Analysis Service Database,AMO不能够检索数据,要检索数据我们还必须使用ADOMD.NET

如何用Excel QueryTable以二维表的方式展现MOLAP里的多维数据

关于误用.滥用MDX和SSAS的场合,这里引用一篇老外的文章(http://www.bp-msbi.com/2010/03/when-not-to-write-mdx-and-when-not-to/),重点请看下最后一节(2. No Aggregations)里的内容,考虑到看官网速可能不太给力,引用此部分内容如下: 2. No Aggregations Another way SSAS gets misused is when a lot of textual data gets store

SSAS系列——【01】准备知识

原文:SSAS系列--[01]准备知识 关于SQL Server 产品,我从2004年就开始使用了,SQL Server 2K,2K5,2K8,到如今已经准6年了,说来惭愧,这六年来所涉及的内容都是在数据库引擎部分,最近有一个机会需要用到多维数据.数据挖掘技术,借此机会把自己的数据库的知识面扩充一下.立志一系列的博文记录之,以备日后温习. 1.本系列的学习目标.实施计划是什么? “凡事预则立”,做事得有一个目标和实施计划. 目标: 全面熟悉SQL Server 2008 产品,掌握扎实的理论知识

线程系列08,实现线程锁的各种方式,使用lock,Montor,Mutex,Semaphore以及线程死锁

当涉及到多线程共享数据,需要数据同步的时候,就可以考虑使用线程锁了.本篇体验线程锁的各种用法以及线程死锁.主要包括: ※ 使用lock处理数据同步※ 使用Monitor.Enter和Monitor.Exit处理数据同步※ 使用Mutex处理进程间数据同步※ 使用Semaphore处理数据同步※ 线程死锁 □ 使用lock处理数据同步 假设有一个类,主要用来计算该类2个字段的商,在计算商的方法之内让被除数自减,即被除数有可能为零.使用lock语句块保证每次只有一个线程进入该方法. class Th