IRubricatorFactorExecutor.UseDwarf

Синтаксис

UseDwarf: Boolean;

Описание

Свойство UseDwarf определяет, использовать ли оптимизацию при загрузке данных базы данных временных рядов в память.

Комментарии

Допустимые значения:

Пример

Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «FC». В данной базе должен присутствовать атрибут рядов с идентификатором «COUNTRY», являющийся ссылкой на справочник.

Добавьте ссылки на системные сборки «Metabase», «Cubes», «Matix», «Rds», «Orm».

Sub uProc;
Var
    MB: IMetabase;
    RubDesc: IMetabaseObjectDescriptor;
    RubrIn: IRubricatorInstance;
    Cub: ICubeInstance;
    Dest: ICubeInstanceDestination;
    FactorExec: IRubricatorFactorExecutor;
    FactsLookup: IRubricatorFactsLookup;
    MetaDLookup: IMetaDictionaryLookup;
    Key: Array Of Integer;
    i: Integer;
    Cond: IOrmCondition;
    Exec: ICubeInstanceDestinationExecutor;
    Mat: IMatrix;
    Ite: IMatrixIterator;
Begin
    MB := MetabaseClass.Active;
    RubDesc := MB.ItemById("FC");
    RubrIn := RubDesc.Open(NullAs IRubricatorInstance;
    Cub := RubrIn As ICubeInstance;
    Dest := Cub.Destinations.DefaultDestination;
    Exec := Dest.CreateExecutor;
    FactorExec := Exec As IRubricatorFactorExecutor;
    FactorExec.MultipleFactors := True;
    FactsLookup := RubrIn.CreateFactsLookup;
    MetaDLookup := FactsLookup.Lookup;
    Cond := MetaDLookup.Where.Add;
    Cond.AttributeName := "COUNTRY";
    Cond.Value := 512;
    i := FactsLookup.LookupFactors.Length;
    Key := New Integer[i];
    Key := FactsLookup.LookupFactors;
    FactorExec.SetFactorKeys(Key);
    FactorExec.ValueKind := MetaAttributeKind.Value;
    FactorExec.ValueId := "VL";
    FactorExec.WhereRevisionBetween(11);
    FactorExec.UseDwarf := True;
    Exec := FactorExec.AsCubeExecutor;
    Exec.PrepareExecute(Null);
    Exec.PerformExecute;
    Mat := Exec.Matrix;
    Ite := Mat.CreateIterator;
    Ite.Move(IteratorDirection.First);
    While Ite.Valid Do
        Debug.WriteLine(Ite.Value);
        Ite.Move(IteratorDirection.Next);
    End While;
End Sub uProc;

После выполнения примера в окно консоли будут выведены значения временных рядов для первой ревизии, соответствующих следующему условию: значение атрибута «COUNTRIES» равняется «512». При получении данных будет использоваться оптимизация.

См. также:

IRubricatorFactorExecutor