MDXクエリの結果を型付データセットに格納する方法

C#やVB.NETからADOMD.NETを使ってMDXクエリの結果を取得する方法にはいくつかある。
http://msdn2.microsoft.com/ja-jp/library/ms123479(SQL.90).aspx
CellSetオブジェクトは多次元DBの構造を維持しているので、プログラム中から条件を指定して結果を取得できるが、単純にクエリの結果を画面に表示するタイプのアプリケーションには向かないと考える。理由は、DataGridViewなどのデータソースにCellSetをセットするのが難しい(できない?)からである。

ここでは、MDXクエリの結果を型付データセットに取得する方法を紹介する。型付データセットを画面に表示する方法は割愛する。
実行するMDXクエリは次のものである。MDXクエリの簡単な作り方は別の記事で紹介している。


結果は2002,2003,2004,2005年それぞれのSalesとTaxを集計した値を、クロス集計表として得ることができる。
Tax Amount Sales Amount
FY 2002 1868842 23360526
FY 2003 33683805 2694704
FY 2004 52714103 4217128
FY 2005 50841 4067

型付データセットに格納するサンプルコード

DataSet1のDatatable1テーブルの列はデザイナで角カッコつきの列名をそのまま貼り付けたものです。(下図)


ただし、角カッコはアンダーバーに置き換えられるのがデータセットの仕様のようなので、ソースコード中で列名を扱うときはアンダーバーを使います。なお、この長くなってしまうカラム名に別名をつけて短くする方法はないようである。


トラックバック

トラックバックURL:
http://www.apricot-jp.com/cgi/mt/mt-tb.cgi/274

関連情報

・Analysis Serviecsのデータベース(キューブ)の名前を変更する方法
・SQL Server 2008へリモート接続する方法
・警告 : 属性リレーションシップに指定された名前と、関連属性の名前が異なります
・配置と処理および再接続の違い
・Reportingで表示する計算列 
・UDM(Unified Dimentional Model)の使い道
・キューブの集計がおかしい時
・バインドに指定されたサイズが小さすぎたため、1 つ以上の列の値が切り捨てられました
・列 "NAME" では、Unicode 形式の文字列データ型と Unicode 以外の形式の文字列データ型を変換できません
・ログオン失敗: 要求された種類のログオンは、このコンピュータではユーザーに許可されていません
・MDXクエリの簡単な作り方
・Adventure Workサンプルデータベースのインストール方法
・MDXクエリの結果を型付データセットに格納する方法
・データ ソース 'XXX' には、処理中の操作にはサポートされていない ImpersonationMode が含まれています。
・処理中の操作にはサポートされていない ImpersonationMode が含まれています。
・ユーザー 'XXXX' には、この操作を行うのに必要な権限が与えられていません。 (rsAccessDenied)
・VS.NETからReportServerへレポートを配置する方法
・ユーザー 'XXXX' には、この操作を行うのに必要な権限が与えられていません。 (rsAccessDenied)
・SQL Server 2005 SP1適用方法
・SQL Server 2005のインストール方法(その1)

Copyright(C) 2007 アーキテクト360 Allrights reserved.