ado 的
OleDbConnection Myconn = new OleDbConnection(ConfigurationSettings.AppSettings["sql_olap"]);
OleDbCommand Mycommand = Myconn.CreateCommand();
Myconn.Open();
string nUserCount="";
string strMdx = "select {[Measures].[Unit Sales]} on columns,{[Time].[1997]} on rows from [Sales]";
//string strMdx = "select {[Measures].[Unit Sales]} on columns, order(except([Promotion Media].[Media Type].members,{[Promotion Media].[Media Type].[No Media]}),[Measures].[Unit Sales],DESC) on rows from Sales";
Mycommand.CommandText = strMdx;
OleDbDataReader myReader = Mycommand.ExecuteReader();
while(myReader.Read())
{
nUserCount = nUserCount + myReader.GetValue(0).ToString()+"--"+myReader.GetValue(1).ToString()+" ";
}
myReader.Close();
Myconn.Close();
return nUserCount;
ADO MD 范例
目录
使用如下范例主题可以了解部分 ADO MD 编程元素。
连接多维据源
Connection 范例演示如何连接 OLAP(联机分析过程)数据库服务器或本地 OLAP 立方文件。
访问 ADO MD 集合
CubeDef 范例演示如何显示 Catalog 中 CubeDef 的维的名称。
获得单元集
单元集范例演示如何执行返回单元集的 MDX 查询。该范例显示单元集中成员的标题和单元的格式化值。
访问单元
单元范例演示检索指定单元的三种方法:通过序号位置、通过轴数值位置和通过成员名称。
Connection 范例
目录
如下代码演示如何使用连接字符串设置 ActiveConnection 属性。该代码假定在名为 Servername 的 OLAP 服务器上有一个名为 Bob Video Store 的数据源,并且使用的是 MSOLAP 数据提供者。
Dim cat As New ADOMD.Catalog
cat.ActiveConnection = "Data Source=Servername;" + _
"Initial Catalog=Bobs Video Store;Provider=msolap;"
如下代码也演示如何使用连接字符串设置 ActiveConnection 属性。但是,该代码使用 MSOLAP 数据提供者连接到本地立方文件,而不是连接到名为 Servername 的 OLAPT 服务器。
Dim cat As New ADOMD.Catalog
cat.ActiveConnection = _
"Location=C:\MSDASDK\samples\oledb\olap\data\BobsVid.cub;" + _
"Provider=msolap;"
如下代码演示如何将 ActiveConnection 属性设置为标准的ADO Connection 对象。要使用 ADO Connection 对象,必须在工程中引用 ADO 类型库。
Dim cnn As New ADODB.Connection
Dim cat As New ADOMD.Catalog
Cnn.Open "Data Source=Servername;" + _
"Initial Catalog=Bobs Video Store;Provider=msolap;"
Set cat.ActiveConnection = cnn
注意 在将 ActiveConnection 属性设置为 Connection 对象时,记住要使用 Set 关键字。如果没有使用 Set 关键词,其结果是将 ActiveConnection 属性设置成 Connection 的默认属性:ConnectionString。代码将会工作,但将创建与数据源的其他连接,最终得到相反的结果。
CubeDef 范例
目录
如下代码范例演示如何访问 CubeDefs 和 Dimensions 集合。该范例打印立方中每个维的名称。该代码假定在名为 Servername 的 OLAP 服务器上存在名为 Bobs Video Store 的数据源。
Dim cat As New ADOMD.Catalog
Dim cdf As ADOMD.CubeDef
Dim I As Integer
cat.ActiveConnection = "Data Source=Servername;" + _
"Initial Catalog=Bobs Video Store;Provider=msolap;"
Set cdf = cat.CubeDefs("Bobs Video Store")
For i = 0 To cdf.Dimensions.Count - 1
Debug.Print cdf.Dimensions(i).Name
Next
Cellset 范例目录如下代码演示如何打开 Cellset、打印每个位置的 Members 的标题和打印 Cell 的格式化值。该代码假定在名为 Servername 的 OLAP 服务器上存在名为 Bobs Video Store 的数据源。Dim cat As New ADOMD.Catalog
Dim cst As New ADOMD.Cellset
Dim axs As ADOMD.Axis
Dim I As Integer
Dim j As Integer
cat.ActiveConnection = "Data Source=Servername;" + _
"Initial Catalog=Bobs Video Store;Provider=msolap;"
cst.Source = "SELECT [Product Category].MEMBERS ON ROWS," + _
"[Store State].MEMBERS ON COLUMNS" + _
"FROM [Bobs Video Store]" + _
"WHERE ([Quantity])"
Set cst.ActiveConnection = cat.ActiveConnection
cst.Open
For i = 0 To cst.Axes(0).Positions.Count - 1
Debug.Print cst.Axes(0).Positions(i).Members(0).Caption & " ";
Set axs = cst.Axes(1)
For j = 0 To axs.Positions.Count - 1
Debug.Print " " & axs.Positions(j).Members(0).Caption & _
" " & cst(i, j).FormattedValue
Next
Next
cst.Close Cell 范例目录如下代码演示访问指定 Cell 的三个方法。该代码假定在 OLAP 服务器上存在名为 Bobs Video Store 的数据源。Dim cat As New ADOMD.Catalog
Dim cst As New ADOMD.Cellset
Dim cll As ADOMD.Cell
cat.ActiveConnection = "Data Source=Servername;" + _
"Initial Catalog=Bobs Video Store;Provider=msolap;"
cst.Source = "SELECT [Product Category].MEMBERS ON ROWS," + _
"[Store State].MEMBERS ON COLUMNS" + _
"FROM [Bobs Video Store]" + _
"WHERE ([Quantity])"
Set cst.ActiveConnection = cat.ActiveConnection
cst.Open
' 使用序号位置检索单元。
Set cll = cst(10)
' 使用轴数值位置检索单元。
Set cll = cst(2,2)
' 使用成员名检索单元。
' MSOLAP 提供者不支持该方法,但是对于支持由成员名
' 访问单元的提供者,该方法可以包括在内。
' Set cll = cst("Childrens", "New York State")