ICubeCacheSaver.SaveCache

Синтаксис Fore

SaveCache(

DestKey: Integer;

ParamValues: IMetabaseObjectParamValues;

Selections: IDimSelectionSet;

Value: IMatrix);

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

SaveCache(

DestKey: UInteger;

ParamValues: Prognoz.Platform.Interop.Metabase.IMetabaseObjectParamValues;

Selections: Prognoz.Platform.Interop.Dimensions.IDimSelectionSet;

Value: Prognoz.Platform.Interop.Matrix.IMatrix);

Параметры

DestKey. Ключ необходимого варианта отображения куба.

ParamValues. Параметры указанного объекта кэширования.

Selections. Коллекция отметок в указанном варианте отображения куба.

Value. Матрица значений куба.

Описание

Метод SaveCache выполняет сохранение кэша для заданного варианта отображения куба по заданным параметрам.

Пример Fore

Для выполнения примера понадобится база данных с идентификатором «DB», а также куб с идентификатором «D_SEP».

Sub UserProc;
Var
    MB: IMetabase;
    MObj: IMetabaseObjectDescriptor;
    CacheSaver: ICubeCacheSaver;
    CrInfo: IMetabaseObjectCreateInfo;
    CubIn: ICubeInstance;
    Dest: ICubeInstanceDestination;
    SelSet: IDimSelectionSet;
    i: Integer;
    Sel: IDimSelection;
    Mat: IMatrix;
Begin
    MB := MetabaseClass.Active;
    MObj := MB.ItemById("D_SEP");
    CrInfo := MB.CreateCreateInfo;
    CrInfo.ClassId := MetabaseObjectClass.KE_CLASS_CUBE_CACHE_SAVER;
    CrInfo.Parent := MObj;
    CrInfo.Permanent := True;
    CacheSaver := MB.CreateObject(CrInfo).Edit As ICubeCacheSaver;
    CacheSaver.Database := MB.ItemById("DB").Bind As IDatabase;
    (CacheSaver As IMetabaseObject).Save;
    CubIn := MObj.Open(NullAs ICubeInstance;
    Dest := CubIn.Destinations.DefaultDestination;
    SelSet := Dest.CreateDimSelectionSet;
    For Each Sel In SelSet Do
        Sel.SelectAll;
    End For;
    Mat := Dest.Execute(SelSet);
    CacheSaver.SaveCache(Dest.Key, Null, SelSet, Mat);
End Sub UserProc;

После выполнения примера будет в базе данных с идентификатором «DB» будет создано хранилище кэша для куба с идентификатором «D_SEP».

Пример Fore.NET

Для выполнения примера понадобится база данных с идентификатором «DB», а также куб с идентификатором «D_SEP».

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Db;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Matrix;

Public Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MObj: IMetabaseObjectDescriptor;
    CacheSaver: ICubeCacheSaver;
    CrInfo: IMetabaseObjectCreateInfo;
    CubIn: ICubeInstance;
    Dest: ICubeInstanceDestination;
    SelSet: IDimSelectionSet;
    i: Integer;
    Sel: IDimSelection;
    Mat: IMatrix;
Begin
    MB := Params.Metabase;
    MObj := MB.ItemById["D_SEP"];
    CrInfo := MB.CreateCreateInfo();
    CrInfo.ClassId := MetabaseObjectClass.KE_CLASS_CUBE_CACHE_SAVER As Int32;
    CrInfo.Parent := MObj;
    CrInfo.Permanent := True;
    CacheSaver := MB.CreateObject(CrInfo).Edit() As ICubeCacheSaver;
    CacheSaver.Database := MB.ItemById["DB"].Bind() As IDatabase;
    (CacheSaver As IMetabaseObject).Save();
    CubIn := MObj.Open(NullAs ICubeInstance;
    Dest := CubIn.Destinations.DefaultDestination;
    SelSet := Dest.CreateDimSelectionSet();
    For Each Sel In SelSet Do
        Sel.SelectAll();
    End For;
    Mat := Dest.Execute(SelSet, UInteger.MaxValue);
    CacheSaver.SaveCache(Dest.Key, Null, SelSet, Mat);
End Sub;

После выполнения примера будет в базе данных с идентификатором «DB» будет создано хранилище кэша для куба с идентификатором «D_SEP».

См. также:

ICubeCacheSaver