IMetabaseObjectInstanceCacheKeeper.Database

Fore Syntax

Database: IMetabaseObject;

Fore.NET Syntax

Database: Prognoz.Platform.Interop.Metabase.IMetabaseObject;

Description

The Database property determines the database, in which it is necessary to store the cache of the repository object.

Fore Example

Executing the example requires that the repository contains a database with the DB identifier and a table dictionary with the Dimension identifier.

Sub UserProc;
Var
    MB: IMetabase;
    MObj: IMetabaseObjectDescriptor;
    CrInfo: IMetabaseObjectCreateInfo;
    CacheKeeper: IMetabaseObjectInstanceCacheKeeper;
    Dimension: IDimInstance;
Begin
    MB := MetabaseClass.Active;
    MObj := MB.ItemById("Dimension");
    CrInfo := MB.CreateCreateInfo;
    CrInfo.Permanent := True;
    CrInfo.ClassId := MetabaseObjectClass.KE_CLASS_CUBE_CACHE_SAVER;
    CrInfo.Parent := MObj;
    CacheKeeper := MB.CreateObject(CrInfo).Edit As IMetabaseObjectInstanceCacheKeeper;
    CacheKeeper.Database := MB.ItemById("DB").Bind;
    CacheKeeper.SplitBLOB := True;
    CacheKeeper.PieceSize := 512;
    (CacheKeeper As IMetabaseObject).Save;
    Dimension := MObj.Open(NullAs IDImInstance;
    Dimension.SaveCache;
End Sub UserProc;

On executing the example the cached repository object warehouse is created in the database, cache of the specified table dictionary will be saved to this warehouse.

Fore.NET Example

The requirements and result of the Fore.NET example execution match with those in the Fore example.

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Dimensions;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MObj: IMetabaseObjectDescriptor;
    CrInfo: IMetabaseObjectCreateInfo;
    CacheKeeper: IMetabaseObjectInstanceCacheKeeper;
    Dimension: IDimInstance;
Begin
    MB := Params.Metabase;
    MObj := MB.ItemById["Dimension"];
    CrInfo := MB.CreateCreateInfo();
    CrInfo.Permanent := True;
    CrInfo.ClassId := MetabaseObjectClass.KE_CLASS_CUBE_CACHE_SAVER As System.Int32;
    CrInfo.Parent := MObj;
    CacheKeeper := MB.CreateObject(CrInfo).Edit() As IMetabaseObjectInstanceCacheKeeper;
    CacheKeeper.Database := MB.ItemById["DB"].Bind();
    CacheKeeper.SplitBLOB := True;
    CacheKeeper.PieceSize := 512;
    (CacheKeeper As IMetabaseObject).Save();
    Dimension := MObj.Open(NullAs IDImInstance;
    Dimension.SaveCache();
End Sub;

See also:

IMetabaseObjectInstanceCacheKeeper