IAdoMdAxis.Open

Синтаксис Fore

Open: IDalCursor;

Синтаксис Fore.NET

Open(): Prognoz.Platform.Interop.Dal.IDalCursor;

Описание

Метод Open возвращает курсор с информацией о координатах, доступных на оси.

Комментарии

Каждая запись курсора описывает отдельную координату оси. Первое поле курсора имеет наименование «TUPLE_ORDINAL» и в качестве значения возвращает индекс координаты. Остальные поля содержат информацию в соответствии с теми атрибутами, которые определены для измерения.

Для разделения информации по отдельным координатам в курсор добавляется отдельная запись. Первое поле в этой записи не имеет наименования, в качестве значения поля указывается номер иерархии.

Пример Fore

Для выполнения примера предполагается наличие в репозитории каталога ADOMD с идентификатором «ADOMDTest».

Sub UserProc;
Var
    MB: IMetabase;
    Catalog: IAdoMdCatalogInstance;
    Connection: IAdoMdConnection;
    sMDX: String;
    Cellset: IAdoMdCellset;
    AxisInfo: IAdoMdAxisInfo;
    Axis: IAdoMdAxis;
    AxisCursor: IDalCursor;
    Fields: IDalCursorFields;
    i: Integer;
Begin
    MB := MetabaseClass.Active;
    Catalog := MB.ItemById("ADOMDTest").Open(NullAs IAdoMdCatalogInstance;
    Connection := Catalog.Connection;
    sMDX := "SELECT ...";
    Cellset := Connection.Cellset(sMDX);
    AxisInfo := Cellset.AxisInfo;
    //Первая ось
    Axis := AxisInfo.Item(0);
    //Координаты первой оси
    AxisCursor := Axis.Open;
    //Поля с описанием каждой координаты
    Fields := AxisCursor.Fields;
    Debug.Writeline("Количество координат:" + Axis.Count.ToString);
    While Not AxisCursor.Eof Do
        For i := 0 To Fields.Count - 1 Do
            Debug.Writeline(Fields.Item(i).Name + " | " + Fields.Item(i).Value);
        End For;
        AxisCursor.Next;
    End While;
End Sub UserProc;

При выполнении примера выполняется многомерный запрос для кубов указанного каталога ADOMD. Из результата выполнения будет получена информация об осях, по которым сформированы данные. В консоль среды разработки будет выведена информация по каждой координате первой оси.

Пример Fore.NET

Для выполнения примера предполагается наличие в репозитории каталога ADOMD с идентификатором «ADOMDTest». Указанная процедура является точкой входа для .NET-сборки.

Imports Prognoz.Platform.Interop.AdoMd;
Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.Metabase;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Catalog: IAdoMdCatalogInstance;
    Connection: IAdoMdConnection;
    sMDX: String;
    Cellset: IAdoMdCellset;
    AxisInfo: IAdoMdAxisInfo;
    Axis: IAdoMdAxis;
    AxisCursor: IDalCursor;
    Fields: IDalCursorFields;
    i: Integer;
Begin
    MB := Params.Metabase;
    Catalog := MB.ItemById["ADOMDTest"].Open(NullAs IAdoMdCatalogInstance;
    Connection := Catalog.Connection;
    sMDX := "SELECT ...";
    Cellset := Connection.Cellset(sMDX);
    AxisInfo := Cellset.AxisInfo;
    //Первая ось
    Axis := AxisInfo.Item[0];
    //Координаты первой оси
    AxisCursor := Axis.Open();
    //Поля с описанием каждой координаты
    Fields := AxisCursor.Fields;
    System.Diagnostics.Debug.Writeline("Количество координат:" + Axis.Count.ToString());
    While Not AxisCursor.Eof() Do
        For i := 0 To Fields.Count - 1 Do
            System.Diagnostics.Debug.Writeline(Fields.Item[i].Name + " | " + Fields.Item[i].Value);
        End For;
        AxisCursor.Next();
    End While;
End Sub;

При выполнении примера выполняется многомерный запрос для кубов указанного каталога ADOMD. Из результата выполнения будет получена информация об осях, по которым сформированы данные. В консоль среды разработки будет выведена информация по каждой координате первой оси.

См. также:

IAdoMdAxis