Img/xRom.gif Главная О сайте Новости Статьи Программы 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С++

Более подробную документацию можно найти на сайте Майкрософт



1C:TOP-100 КЛУБ ПРОФЕССИОНАЛОВ 1С
Hosted by uCoz