ICubeMetaExporterBinding.DataDomain

Fore Syntax

DataDomain: DbDataDomain;

Fore.NET Syntax

DataDomain: Prognoz.Platform.Interop.Dal.DbDataDomain;

Description

The DataDomain property determines data type that is used to store multibyte information in attribute.

Comments

This property for attribute of the Long Text type must be set to DbDataDomain.Memo, and the IMetaAttribute.DataType property must be set to DbDataType.String.

Consider the following constraints on working with the Long Text attribute:

Fore Example

Executing the example requires that the repository contains a time series database with the TSDB_MEMO identifier containing the following time series attributes:

Add links to the Cubes, Dal, Dimensions, Dt, Metabase, Rds system assemblies.

Sub UserProc;
Var
    TextConsumer: IDtTextConsumer;
    MB: IMetabase;
    CrInfo: IMetabaseObjectCreateInfo;
    RubDescr: IMetabaseObjectDescriptor;
    ObjDesc: IMetabaseObjectDescriptor;
    Obj: IMetabaseObject;
    ExportRequestDef: IExportRequestDefinition;
    Params: IExportRequestParams;
    Rubr: IRubricator;
    Binding: ICubeMetaExporterBinding;
    FactsDict: IMetaDictionary;
    Attr: IMetaAttribute;
    ExportRequestInst: IExportRequestInstance;
Begin
    // Set up data consumer for export to text format
    TextConsumer := New DtTextConsumer.Create;
    TextConsumer.File := "C:\result.txt";
    TextConsumer.FormatType := DtTextFormatType.Delimited;
    TextConsumer.DelimitedColumnDelimiter := ";";
    TextConsumer.DelimitedTextQualifier := """";
    TextConsumer.Encoding := "WIN";
    TextConsumer.WriteHeader := True;
    // Get current repository and create an export object
    MB := MetabaseClass.Active;
    CrInfo := MB.CreateCreateInfo;
    CrInfo.ClassId := MetabaseObjectClass.KE_CLASS_EXPORTREQUEST;
    RubDescr := MB.ItemById("TSDB_MEMO");
    CrInfo.Parent := RubDescr;
    CrInfo.Id := MB.GenerateId("OBJ_EXPORTREQUEST", RubDescr.Key);
    CrInfo.Permanent := True;
    ObjDesc := MB.CreateObject(CrInfo);
    Obj := ObjDesc.Edit;
    // Get export parameters
    ExportRequestDef := Obj As IExportRequestDefinition;
    Params := ExportRequestDef.Exporter;
    // Specify data source
    Rubr := RubDescr.Bind As IRubricator;
    Params.Rubricator := Rubr;
    // Specify data consumer
    Params.Consumer := TextConsumer As IDtConsumer;
    // Set binding for the CITY attribute
    Binding := Params.Bindings.Add;
    Binding.FieldName := "CityKey";
    Binding.DataType := DbDataType.String;
    Binding.BindingType := CubeMetaExporterBindingType.Attribute;
    FactsDict := Rubr.Facts;
    Attr := FactsDict.Attributes.FindById("CITY");
    Binding.AttributeKey := Attr.Key;
    Binding.KeyField := "KEY";
    // Set calendar binding
    Binding := Params.Bindings.Add;
    Binding.FieldName := "Year";
    Binding.DataType := DbDataType.String;
    Binding.BindingType := CubeMetaExporterBindingType.Calendar;
    Binding.DateFormat := "$Year$";
    Binding.ValueFieldName := "Value";
    Binding.ValueDataType := DbDataType.Float;
    // Set binding for the A_COMMENT attribute of the Long Text type
    Binding := Params.Bindings.Add;
    Binding.FieldName := "Comment";
    Binding.DataType := DbDataType.String;
    Binding.DataDomain := DbDataDomain.Memo;
    Binding.BindingType := CubeMetaExporterBindingType.ValueAttribute;
    Binding.Attribute := "A_COMMENT";
    // Set calendar frequency of exported data
    Params.CalendarLevel := DimCalendarLevel.Year;
    // Save changes
    Obj.Save;
    // Execute export
    ExportRequestInst := ObjDesc.OpenWithParam(NullAs IExportRequestInstance;
    ExportRequestInst.Export;
End Sub UserProc;

After executing the example data of the time series database is exported to the C:\result.txt file.

Fore.NET Example

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

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Dt;
Imports Prognoz.Platform.Interop.Rds;

Public Shared Sub Main(Params: StartParams);
Var
    TextConsumer: IDtTextConsumer;
    MB: IMetabase;
    CrInfo: IMetabaseObjectCreateInfo;
    RubDescr: IMetabaseObjectDescriptor;
    ObjDesc: IMetabaseObjectDescriptor;
    Obj: IMetabaseObject;
    ExportRequestDef: IExportRequestDefinition;
    ExpParams: IExportRequestParams;
    Rubr: IRubricator;
    Binding: ICubeMetaExporterBinding;
    FactsDict: IMetaDictionary;
    Attr: IMetaAttribute;
    ExportRequestInst: IExportRequestInstance;
Begin
    // Set up data consumer for export to text format
    TextConsumer := New DtTextConsumer.Create();
    TextConsumer.File := "C:\result.txt";
    TextConsumer.FormatType := DtTextFormatType.tftDelimited;
    TextConsumer.DelimitedColumnDelimiter := ";";
    TextConsumer.DelimitedTextQualifier := """";
    TextConsumer.Encoding := "WIN";
    TextConsumer.WriteHeader := True;
    // Get current repository and create an export object
    MB := Params.Metabase;
    CrInfo := MB.CreateCreateInfo();
    CrInfo.ClassId := MetabaseObjectClass.KE_CLASS_EXPORTREQUEST As integer;
    RubDescr := MB.ItemById["TSDB_MEMO"];
    CrInfo.Parent := RubDescr;
    CrInfo.Id := MB.GenerateId("OBJ_EXPORTREQUEST", RubDescr.Key);
    CrInfo.Permanent := True;
    ObjDesc := MB.CreateObject(CrInfo);
    Obj := ObjDesc.Edit();
    // Get export parameters
    ExportRequestDef := Obj As IExportRequestDefinition;
    ExpParams := ExportRequestDef.Exporter;
    // Specify data source
    Rubr := RubDescr.Bind() As IRubricator;
    ExpParams.Rubricator := Rubr;
    // Specify data consumer
    ExpParams.Consumer := TextConsumer As IDtConsumer;
    // Set binding for the CITY attribute
    Binding := ExpParams.Bindings.Add();
    Binding.FieldName := "CityKey";
    Binding.DataType := DbDataType.ddtString;
    Binding.BindingType := CubeMetaExporterBindingType.cmebtAttribute;
    FactsDict := Rubr.Facts;
    Attr := FactsDict.Attributes.FindById("CITY");
    Binding.AttributeKey := Attr.Key;
    Binding.KeyField := "KEY";
    // Set calendar binding
    Binding := ExpParams.Bindings.Add();
    Binding.FieldName := "Year";
    Binding.DataType := DbDataType.ddtString;
    Binding.BindingType := CubeMetaExporterBindingType.cmebtCalendar;
    Binding.DateFormat := "$Year$";
    Binding.ValueFieldName := "Value";
    Binding.ValueDataType := DbDataType.ddtFloat;
    // Set binding for the A_COMMENT attribute of the Long Text type
    Binding := ExpParams.Bindings.Add();
    Binding.FieldName := "Comment";
    Binding.DataType := DbDataType.ddtString;
    Binding.DataDomain := DbDataDomain.dddMemo;
    Binding.BindingType := CubeMetaExporterBindingType.cmebtValueAttribute;
    Binding.Attribute := "A_COMMENT";
    // Set calendar frequency of exported data
    ExpParams.CalendarLevel := DimCalendarLevel.dclYear;
    // Save changes
    Obj.Save();
    // Execute export
    ExportRequestInst := ObjDesc.OpenWithParam(NullAs IExportRequestInstance;
    ExportRequestInst.Export();
End Sub;

See also:

ICubeMetaExporterBinding