关于如何远程访问AnalysisServices以及Cell向DataTable转换的关键技术

SQLSERVER2005客户端不能连接服务器Analysis_Server解决办法 SQLSERVER2005客户端不能连接服务器Analysis_Server解决办法SQLSERVER2005客户端不能连接服务器Analysis_Server解决办法 立即下载

下边简单的说一下我前段时间整理的从Analysis Services读取数据,然后转换为DataTable的解决方法及思路。

从以下几个步骤说明:

一:配置AnalysisServices的远程http访问:http://blogs.msdn.com/b/sqldev/archive/2011/01/18/how-to-configure-http-access-to-sql-server-2008-analysis-services-on-iis7.aspx

配置完成以后就可以在程序中访问AnalysisServices服务了,下边是应用程序端的配置。

二: 在项目引用中引用Microsoft.AnalysisServices.AdomdClient 文件位置在

C:\Program Files(x86)\Microsoft.NET\ADOMD.NET\100\Microsoft.AnalysisServices.AdomdClient.dll 没有的话需要去下载,一般都有。

三:配置AnalysisServices访问链接:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Collections;
namespaceBeisen.AnalysisServices.ServiceImp.Config
{
   public sealed class AnalysisServicesConfig
    {
      public static readonly stringAnalysisServicesHttpConn4 = "Provider=MSOLAP;
      DataSource=http://localhost/olap/msmdpump.dll;
       Initial Catalog=BeiSenAnalysisServices;";
    
    }
}


四:下边就可以访问数据了:

protected DataTableGetData()
       {
           string SQLQuery = @"select[Wd Highest Degree].[Name].[Name] on columns,([Wd Datetime].[DYear].children,
          [Wd Datetime].[Dmonth].children,[Wd Datetime].[Ddate].children)on rows from [Beisen ASA];";
           if (DataTable != null)return DataTable;
           if (DBConnectionString == null || SQLQuery == null)
           throw new Exception("Pleaseprovide either DataRows, 
           or both DBConnectionString and SQLQuery to getdata");
           AdomdConnection conn = new AdomdConnection(DBConnectionString);
           AdomdCommand comm = newAdomdCommand(SQLQuery, conn);
           conn.Open();
           CellSet cs = comm.ExecuteCellSet();
           conn.Close();
           return CellSetToDataTable.ToDataTable(cs,"table0");
       }


五:到这就剩下需要找到ToDataTable方法了,下边是这个方法:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
usingMicrosoft.AnalysisServices.AdomdClient;
 
namespace  AnalysisServices.Utility
{
   public class CellSetToDataTable
    {
       /// <summary>
       /// 将CellSet转化成DataTable(包括所有维度)
       /// </summary>
       /// <param name="cs">CellSet</param>
       /// <returns></returns>
       public static DataTable ToDataTable(CellSetcs,string tbname)
       {
           DataTable dt = newDataTable(tbname);
           DataColumn dc = null;
           DataRow dr = null;
 
            //生成数据列对象
           //多个维度转化成列          
 for (int col = 0; col< cs.Axes[1].Set.Hierarchies.Count; col++)
           {
               dc = new DataColumn();
//下面的代码会报错:"The connection is not open.” 获取层次结构的维度名时需要连接Cube才可以!
//dt.Columns.Add(new DataColumn(cs.Axes[1].Set.Hierarchies[col].ParentDimension.Name));
               dt.Columns.Add(new DataColumn("Dimension" + col.ToString()));
           }
 
           int index = 0;
           foreach (Positionp in cs.Axes[0].Positions)
           {
               dc = new DataColumn();
               string name = "";
               foreach (Memberm in p.Members)
               {
                   name += m.Caption + "-";
               }
               if (name.Length > 0)
               {
                   name = name.Substring(0, name.Length - 1);
               }
                //这里防止维度成员或度量值重名而需要容错处理
               try
               {
                   dc.ColumnName = name;
                   dt.Columns.Add(dc);
               }
               catch (System.Exceptionex)
               {
                   dc.ColumnName = name + index.ToString();
                   dt.Columns.Add(dc);
               }
               index++;
           }
 
           //添加行数据
           int pos = 0;
           foreach (Positionpy in cs.Axes[1].Positions)
           {
               dr = dt.NewRow();
 
               //维度描述列数据
               intcols = 0;
               foreach (Memberm in py.Members)
               {
                   dr[cols] = m.Caption;
                   cols++;
               }
 
               //数据列
               for (int x = 1;x <= cs.Axes[0].Positions.Count; x++)
               {
                   dr[x + cols - 1] = cs[pos++].FormattedValue;
               }
               dt.Rows.Add(dr);
           }
           return dt;
       }
    }
}


SurfaceControlViewHost使用介绍 可以看到,主要用途:是把一个进程的View显示到另外一个进程里面。 阅读详情

相关推荐

GD32F4系列替换STM32F4,HAL库CAN初始化卡死?一个Sleep模式的坑与填坑实录

本文详细解析了GD32F4系列替换STM32F4时,HAL库CAN初始化卡死的问题根源——Sleep模式差异。通过对比两款芯片CAN控制器的默认状态,提出了不修改HAL库源码的解决方案,即在HAL_CAN_MspInit()中清除SLEEP位,并分析了该方法的优势。文章还提供了国产MCU替换的通用建议和调试技巧,帮助开发者高效解决问题。

weixin_29174013的博客 217

使用http连接到Analysis services

习惯上都是通过localhost或者IP来访问服务器端的Cube,Provider=MSOLAP;Data Source=localhost(127.0.0.1);Initial Catalog=FoodMart 2000。当需要客户端通过http协议来访问Analysis Services时,需要对服务端做适当的配置。 SQL Server Analysis Service通过...

weixin_30415801的博客 397

RK3576+IMX415 MIPI摄像头零拷贝显示系统

MIPI CSI-2是嵌入式视觉系统中主流的高速图像传感器接口标准,其核心价值在于低延迟、高带宽与硬件级DMA直通能力。基于V4L2子系统与DRM/KMS驱动栈,可构建从传感器RAW数据到帧缓冲区的零拷贝通路,显著降低CPU负载并提升实时性。该技术广泛应用于工业检测、边缘AI推理前数据接入及多路同步采集等场景。本文以Rockchip RK3576 SoC和索尼IMX415传感器为典型组合,详解MIPI物理层适配、内核驱动集成、GStreamer零拷贝管道搭建及systemd服务化部署,覆盖从硬件信号完整性到

weixin_36047538的博客 217

analysis service 2005 使用中的一点记录()

 问题记录 1.       Analysis Serive远程访问: 目前只支持windows认证,如访问的程序与analysis service在同一台机器上,则不存在访问的问题,如分布在不同机器上,而必须保证两台机器都加入同一域,并且访问程序必须在机器为域登陆状态下才可以连接上. 几种情况: 域用户登陆系统 , .Net开发环境下运行web程序,可以访问到 远程analy

闲敲棋子落灯花 889

【OpenCV】背景替换(opencv、python),照片、证件照的背景替换(抠图)

目录步骤:导入库1、读入将要抠图的图片2、create一个带颜色域的mask3、通过mask使得原图只显示汽车,即抠出所需要的部分4、将要替换掉的图像resize或裁剪到和上述图片一样的大小5、将该图片预留出将要重叠上的部分,即将mask部分改为(0,0,0)6、通过和运算使得两部分图片mask部分替换7、最后保存图片 步骤: 导入库 import matplotlib.pyplot as plt import matplotlib.image as mpimg import numpy as np imp

weixin_41729258的博客 4362

ANSYS HFSS 中的相控天线阵列仿真方法

相控天线阵列系统广泛使用,从国防雷达应用到商业 5G 应用。设计这些天线阵列涉及复杂的数学运算,需要全波仿真。Ansys HFSS 全场 3D 电磁仿真软件可以在合理的时间内以较低的计算成本仿真复杂的相控阵天线系统,同时考虑复杂激励、环境(即附近的天线)和平台对其性能的影响。本博客介绍了可用于有效仿真相控天线阵列的不同方法。以下是不同仿真方法的简要概述,视频链接中提供了完整的演示。ANSYS HFSS 提供 4 种不同的相控天线阵列仿真方法:1) 晶胞-无限阵列。

jkh920184196的博客 4253

配置 http 连接 analysis service (ssas)

当数据仓库搭建好后,我们就可以通过sqlserver的管理工具查看服务器上的数据集了。但是这样挺不方便的,如果要远程访问,那么就可以通过http来连接数据仓库。要配置数据仓库http连接非常的简单。如果是sqlserver 2000的版本,那么可以找到Msolap.asp这个文件,通过配置到IIS站点中就可以连接了。不过如果是sqlserver 2005之后的版本,这个方法就不适用了。这时...

iteye_1038的博客 604

OpenClaw人人养虾:接入即时通讯平台Zalo

通过 Zalo Official Account(OA,官方账号)API,可以将 OpenClaw 接入 Zalo,实现面向越南用户的自动化客服和互动。

王国平的博客 437

连接远程analysis service 服务器的验证方法

今天下载了宏信软件的abis2005试用版,在配置的时候遇到了一个问题:在.net下怎样远程连接 analysis service的问题。找了一些资料,贴出来大家一起学习。[@more@] Microsoft SQL Server 2005 Analysis Services (SSAS) 依赖 Microsoft Windows 来对用户进行身份验证。默认情况下,只有经过身份验证的用户

yegreen的专栏 5113

【020】C++ 动态内存管理解析:new 和 delete 的正确使用

C++中的动态内存分配是在程序运行时根据需要进行内存空间的分配和释放,与静态内存分配相比,具有更大的灵活性和适应性。动态内存分配可以通过new和delete或者malloc()和free()等函数实现。在程序运行时无法确定所需的内存大小。需要在多个函数之间共享数据,并且数据可能被频繁地创建和销毁。静态数组无法满足需求,例如需要支持可变长度数组。如果在动态分配内存后忘记了释放它,则会导致内存泄漏。为避免内存泄漏,可以使用智能指针或手动管理内存的方式来释放动态分配的内存。

Lion_Long的博客 1470

【uniapp踩坑记】App Store上传失败:Invalid Swift Support错误怎么解决?

作为一个前端出身的开发者,用 uniapp 开发原生 App 已经够挑战了,打包 iOS 上传 App Store 更是处处暗雷。这次的坑虽然小,但确实容易忽略。如果你也遇到了类似的报错,希望这篇文章能帮你少踩一次坑!

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1143

analysis service 配置远程连接

http://msdn.microsoft.com/zh-cn/library/gg492140(v=sql.105).aspx 转载于:https://www.cnblogs.com/sycdirdir/archive/2013/02/28/2936354.html

weixin_30586257的博客 485

【WorkBuddy专栏53】我的WB为什么变聪明了——SOUL与USER配置管理实战(上)

【WorkBuddy专栏53】我的WB为什么变聪明了——SOUL与USER配置管理实战(上)

AI人人懂 245

windows7下为Microsoft SQL2008 Analysis Services 远程访问配置 Windows 防火墙

windows7下为Microsoft SQL2008 Analysis Services 远程访问配置 Windows 防火墙 使用本主题中的信息可以确定您是否需要在防火墙中取消阻止端口,以便允许对 Analysis Services 或 PowerPivot for

cupid0051的专栏 5613

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

数据挖掘需要的服务器性能,远程和本地服务器(Analysis Services - 数据挖掘)

对数据挖掘对象的编程访问您可以使用下列对象模型创建与 Analysis Services 数据库的连接和处理数据挖掘对象:ADO 使用 OLE DB 连接到 Analysis Services 服务器。使用 ADO 时,客户端仅限于架构行集查询和 DMX 语句。ADO.NET 与其他访问接口相比,可以更好地与 SQL Server 访问接口进行交互。使用数据适配器存储动态行集。使用数据集对象,该数...

weixin_39531229的博客 2671

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

如何从不同的域访问SQL Server Analysis Service

SQL Server Analysis Service 只支持 Windows Integrated 认证。如果开发者的电脑跟 Analysis Service 不在一个域或者是两台独立的电脑的话,开发者就不能使用 SQL Server Management Studio 来访问 Analysis Service 了,每次访问只能通过远程桌面。甚是不便! Windows 的 runas 命令可以让用户使用不通身份启动程序,但是启动时要验证密码,由于开发者和服务不在同一个域里,验证只会失败,这时开发者可以使用

surfirst的博客 568

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

上一篇: 谈谈c#中的static
下一篇: 构建ReportViewer表格工具与js图表控件一体化的报表展示解决方案
wangdingbang
博客等级 码龄17年 82粉丝 82原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值