Главная | О сайте | Новости | Статьи | Программы | OLAP | Ссылки |
|
||||||||||||||
Доступ к многомерным базам данных с помощью ADO MD.
ADO MD (ADO Multidimensional) — это расширение ADO, реализованное в библиотеке msadomd.dll и содержащее объектную модель, позволяющую обращаться как к метаданным многомерных баз данных, так и к результатам MDX-запросов.
Объектная модель ADO MD, состоит из двух частей. Первая часть начинается объектом "Catalog". Эта часть предназначена для доступа к метаданным многомерной базы данных.
Небольшой пример использования объекта ADOMD.Catalog
Процедура Сформировать()
OLAPDB="FoodMart
2000";
OLAPServer="192.168.1.2";
Каталог =
СоздатьОбъект("ADOMD.Catalog");
Каталог.ActiveConnection
= "Provider=msolap; Data Source="+OLAPServer+";
Initial Catalog="+OLAPDB+";";
Для Индекс=0
По Каталог.CubeDefs.Count()-1
Цикл
Сообщить("Name="+Каталог.CubeDefs(Индекс).Name);
Для
Инд=0 По
Каталог.CubeDefs(Индекс).Dimensions.Count()-1
Цикл
Сообщить(" Dim="+Каталог.CubeDefs(Индекс).Dimensions(Инд).Name);
КонецЦикла;
Сообщить("~~~~~~~~~~~~~~~~~~~");
КонецЦикла;
КонецПроцедуры
Пример использования объекта ADOMD.CellSet
Процедура Сформировать()
OLAPServer="192.168.1.2";
OLAPDB="FoodMart
2000";
MDXQuery="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";
CellSet
= СоздатьОбъект("ADOMD.CellSet");
CellSet.ActiveConnection
= "Provider=msolap; Data Source="+OLAPServer+";
Initial Catalog="+OLAPDB+";";
CellSet.Source
= MDXQuery;
CellSet.Open();
Для Индекс=0
По CellSet.Axes(1).Positions.Count-1
Цикл
Для Инд=0
По CellSet.Axes(0).Positions.Count-1
Цикл
Сообщить(CellSet.Item(Инд,
Индекс).FormattedValue);
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Еще один хороший пример использования объекта CellSet. Отчет выводит любой двухмерный MDX-запрос в стандартный объект "Таблица".
Может быть использован в качестве универсального средства отображения результатов запроса.
MDXQuery - оформлен как внешний отчет
Class_MDXQuery - оформлен как класс для внешней компоненты 1С++
Более подробную документацию можно найти на сайте
Майкрософт