ICubeLoaderFromSource.LoadWithResult

Fore Syntax

LoadWithResult(Source: Object; CreateInfo: IMetabaseObjectCreateInfo): ICubeLoaderResult;

Fore.NET Syntax

LoadWithResult(Source: Object; CreateInfo: Prognoz.Platform.Interop.Metabase.IMetabaseObjectCreateInfo): Prognoz.Platform.Interop.Cubes.ICubeLoaderResult;

Parameters

Source. The data source described by the IDtProvider interface.

CreateInfo. Information about the created object. If information is missing or loading to the current object is executed, the Null value must be passed as a parameter.

Description

The LoadWithResult method loads data and returns loading result.

Comments

The type of created object determines value of the ICubeLoaderFromSource.Type property.

Fore Example

Executing the example requires the following in the repository:

  1. Folder with the TSDB_FOLDER identifier.

  2. MDM repository with the RDS_LOAD identifier.

  3. Table MDM dictionary with the CITY identifier. This dictionary must be outside the MDM repository. The dictionary must also contain a unique index with the UINDEX identifier. This index must include only one attribute with the NAME identifier. The attribute contains names of dictionary elements. The dictionary must contain the following elements:

The file system must contain the C:\result_exp.txt file with data.

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

Contents of the C:\result_exp.txt file

<font color="#008080">Sub</font>&nbsp;UserProc;<br /> <font color="#008080">Var</font><br /> &nbsp;&nbsp;&nbsp;&nbsp;mb:&nbsp;IMetabase;<br /> &nbsp;&nbsp;&nbsp;&nbsp;parent:&nbsp;IMetabaseObject;<br /> &nbsp;&nbsp;&nbsp;&nbsp;rdsDatabase:&nbsp;IRdsDatabase;<br /> &nbsp;&nbsp;&nbsp;&nbsp;loader:&nbsp;ICubeLoaderFromSource;<br /> &nbsp;&nbsp;&nbsp;&nbsp;DimBindings:&nbsp;ICubeLoaderDimensionBindings;<br /> &nbsp;&nbsp;&nbsp;&nbsp;bind:&nbsp;ICubeLoaderDimensionBinding;<br /> &nbsp;&nbsp;&nbsp;&nbsp;DimModel:&nbsp;IDimensionModel;<br /> &nbsp;&nbsp;&nbsp;&nbsp;Calend:&nbsp;ICubeLoaderDimensionBinding;<br /> &nbsp;&nbsp;&nbsp;&nbsp;DateConv:&nbsp;IDateConverter;<br /> &nbsp;&nbsp;&nbsp;&nbsp;creator:&nbsp;IDtObjectCreator;<br /> &nbsp;&nbsp;&nbsp;&nbsp;prov:&nbsp;IDtTextProvider;<br /> &nbsp;&nbsp;&nbsp;&nbsp;Result:&nbsp;ICubeLoaderResult;<br /> &nbsp;&nbsp;&nbsp;&nbsp;Object:&nbsp;IMetabaseObject;<br /> &nbsp;&nbsp;&nbsp;&nbsp;List,&nbsp;Arr:&nbsp;IArrayList;<br /> &nbsp;&nbsp;&nbsp;&nbsp;Item:&nbsp;Variant;<br /> &nbsp;&nbsp;&nbsp;&nbsp;i:&nbsp;Integer;<br /> <font color="#008080">Begin</font><br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Get&nbsp;current&nbsp;repository<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;mb&nbsp;:=&nbsp;MetabaseClass.Active;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Get&nbsp;the&nbsp;TSDB_FOLDER folder,&nbsp;in&nbsp;which&nbsp;time&nbsp;series<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;database&nbsp;will&nbsp;be&nbsp;created<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;parent&nbsp;:=&nbsp;mb.ItemById(<font color="#800000">&quot;TSDB_FOLDER&quot;</font>).Bind;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Get&nbsp;MDM&nbsp;repository<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;rdsDatabase&nbsp;:=&nbsp;mb.ItemById(<font color="#800000">&quot;RDS_LOAD&quot;</font>).Bind&nbsp;<font color="#008080">As</font>&nbsp;IRdsDatabase;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Create&nbsp;an object&nbsp;for&nbsp;data&nbsp;loading<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;loader&nbsp;:=&nbsp;<font color="#008080">New</font>&nbsp;CubeLoaderFromSource.Create;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Specify&nbsp;the MDM&nbsp;repository,&nbsp;that&nbsp;is&nbsp;used&nbsp;on&nbsp;loading<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;loader.RdsDatabase&nbsp;:=&nbsp;rdsDatabase.Open(<font color="#008080">Null</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Specify&nbsp;that&nbsp;time&nbsp;series&nbsp;database&nbsp;will&nbsp;be<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;created&nbsp;for&nbsp;loaded&nbsp;data<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;loader.Type&nbsp;:=&nbsp;CubeLoaderType.Rubricator;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Specify&nbsp;the folder,&nbsp;in&nbsp;which&nbsp;time&nbsp;series&nbsp;database&nbsp;will&nbsp;be&nbsp;created<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;loader.Parent&nbsp;:=&nbsp;parent;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Get&nbsp;bindings&nbsp;of dimensions&nbsp;to&nbsp;data&nbsp;source&nbsp;fields<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;DimBindings&nbsp;:=&nbsp;loader.DimensionBindings;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Add&nbsp;binding&nbsp;for&nbsp;the&nbsp;CITY field<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;bind&nbsp;:=&nbsp;DimBindings.Add(<font color="#800000">&quot;CITY&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Specify,&nbsp;that&nbsp;the field&nbsp;will have&nbsp;corresponding&nbsp;dimension,<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;based&nbsp;on&nbsp;the&nbsp;CITY_DICT&nbsp;MDM dictionary<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;DimModel&nbsp;:=&nbsp;mb.ItemById(<font color="#800000">&quot;CITY_DICT&quot;</font>).Bind&nbsp;<font color="#008080">As</font>&nbsp;IDimensionModel;<br /> &nbsp;&nbsp;&nbsp;&nbsp;bind.Dictionary&nbsp;:=&nbsp;DimModel;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Specify&nbsp;the index,&nbsp;by&nbsp;which&nbsp;binding&nbsp;is&nbsp;created<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;bind.Index&nbsp;:=&nbsp;DimModel.Indexes.FindById(<font color="#800000">&quot;UINDEX&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Specify identifier&nbsp;of the attribute,&nbsp;based&nbsp;on which&nbsp;index&nbsp;is built<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;bind.AttributeId&nbsp;:=&nbsp;<font color="#800000">&quot;NAME&quot;</font>;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Add&nbsp;a binding&nbsp;for&nbsp;the&nbsp;INDICATOR field.<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Dictionary&nbsp;for&nbsp;creating&nbsp;the dimension,&nbsp;corresponding&nbsp;to this&nbsp;field,<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;is&nbsp;created&nbsp;automatically&nbsp;in&nbsp;the RDS_LOAD&nbsp;MDM&nbsp;repository<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;DimBindings.Add(<font color="#800000">&quot;INDICATOR&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Add&nbsp;a binding&nbsp;for&nbsp;calendar&nbsp;dimension<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;Calend&nbsp;:=&nbsp;DimBindings.AddCalendar(<font color="#800000">&quot;Year&quot;</font>,&nbsp;DimCalendarLevel.Year);<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Create&nbsp;a n object&nbsp;for&nbsp;date&nbsp;parsing&nbsp;in&nbsp;data&nbsp;source<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;DateConv&nbsp;:=&nbsp;<font color="#008080">New</font>&nbsp;DateConverter.Create;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Set&nbsp;date&nbsp;format<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;DateConv.CalendarDateFormat&nbsp;:=&nbsp;<font color="#800000">&quot;$YEAR$&quot;</font>;<br /> &nbsp;&nbsp;&nbsp;&nbsp;DateConv.ConvertShortYear&nbsp;:=&nbsp;<font color="#008080">True</font>;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Set&nbsp;created&nbsp;object&nbsp;to&nbsp;calendar&nbsp;dimension&nbsp;binding<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;Calend.Converter&nbsp;:=&nbsp;DateConv;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Add&nbsp;a binding&nbsp;for&nbsp;data&nbsp;source&nbsp;values<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;loader.FactBindings.Add(<font color="#800000">&quot;Value&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Create&nbsp;an object&nbsp;to&nbsp;work&nbsp;with&nbsp;data&nbsp;source<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;creator&nbsp;:=&nbsp;<font color="#008080">New</font>&nbsp;DtObjectCreator.Create;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Create&nbsp;a text&nbsp;data&nbsp;source&nbsp;from&nbsp;file<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;prov&nbsp;:=&nbsp;creator.CreateDtObjectFromFile(<font color="#800000">&quot;C:\result_exp.txt&quot;</font>)&nbsp;<font color="#008080">As</font>&nbsp;IDtTextProvider;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Specify&nbsp;field&nbsp;delimiter&nbsp;used&nbsp;in&nbsp;source<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;prov.DelimitedColumnDelimiter&nbsp;:=&nbsp;<font color="#800000">&quot;;&quot;</font>;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Load&nbsp;data&nbsp;and&nbsp;process&nbsp;loading&nbsp;result<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;loader.LoadWithResult(prov,&nbsp;<font color="#008080">Null</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Get&nbsp;the object&nbsp;to&nbsp;which&nbsp;data&nbsp;is&nbsp;loaded<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;:=&nbsp;Result.Object;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Output&nbsp;information&nbsp;about object&nbsp;to&nbsp;console&nbsp;window<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;Debug.WriteLine(<font color="#800000">&quot;Name&nbsp;and&nbsp;identifier&nbsp;of created&nbsp;time&nbsp;series&nbsp;database:&nbsp;&quot;</font>&nbsp;+<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object.Name&nbsp;+&nbsp;<font color="#800000">&quot;(&quot;</font>&nbsp;+&nbsp;Object.Id&nbsp;+&nbsp;<font color="#800000">&quot;)&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Get&nbsp;empty&nbsp;records&nbsp;and&nbsp;output&nbsp;them&nbsp;to&nbsp;console&nbsp;window<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;:=&nbsp;Result.NullStrings;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">If</font>&nbsp;List.Count&nbsp;&lt;&gt;&nbsp;<font color="#008000">0</font>&nbsp;<font color="#008080">Then</font><br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug.WriteLine(<font color="#800000">&quot;Empty&nbsp;records:&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">For</font>&nbsp;<font color="#008080">Each</font>&nbsp;Item&nbsp;<font color="#008080">In</font>&nbsp;List&nbsp;<font color="#008080">Do</font><br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Arr&nbsp;:=&nbsp;Item&nbsp;<font color="#008080">As</font>&nbsp;IArrayList;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">For</font>&nbsp;i&nbsp;:=&nbsp;<font color="#008000">0</font>&nbsp;<font color="#008080">To</font>&nbsp;Arr.Count&nbsp;-&nbsp;<font color="#008000">1</font>&nbsp;<font color="#008080">Do</font><br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug.Write(Arr.Item(i));<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug.Write(<font color="#800000">&quot;;&nbsp;&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">End</font>&nbsp;<font color="#008080">For</font>;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug.WriteLine(<font color="#800000">&quot;&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">End</font>&nbsp;<font color="#008080">For</font>;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">End</font>&nbsp;<font color="#008080">If</font>;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Get&nbsp;duplicate&nbsp;records&nbsp;and&nbsp;output&nbsp;them&nbsp;to&nbsp;console&nbsp;window<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;:=&nbsp;Result.DuplicatedStrings;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">If</font>&nbsp;List.Count&nbsp;&lt;&gt;&nbsp;<font color="#008000">0</font>&nbsp;<font color="#008080">Then</font><br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug.WriteLine(<font color="#800000">&quot;Duplicate&nbsp;records:&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">For</font>&nbsp;<font color="#008080">Each</font>&nbsp;Item&nbsp;<font color="#008080">In</font>&nbsp;List&nbsp;<font color="#008080">Do</font><br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Arr&nbsp;:=&nbsp;Item&nbsp;<font color="#008080">As</font>&nbsp;IArrayList;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">For</font>&nbsp;i&nbsp;:=&nbsp;<font color="#008000">0</font>&nbsp;<font color="#008080">To</font>&nbsp;Arr.Count&nbsp;-&nbsp;<font color="#008000">1</font>&nbsp;<font color="#008080">Do</font><br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug.Write(Arr.Item(i));<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug.Write(<font color="#800000">&quot;;&nbsp;&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">End</font>&nbsp;<font color="#008080">For</font>;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug.WriteLine(<font color="#800000">&quot;&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">End</font>&nbsp;<font color="#008080">For</font>;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">End</font>&nbsp;<font color="#008080">If</font>;<br /> <font color="#008080">End</font>&nbsp;<font color="#008080">Sub</font>&nbsp;UserProc;

After executing the example data from the C:\result_exp.txt file is loaded to the time series database created for this purpose. Import results and identifier and name of the created time series database are output to the console window.

Fore.NET Example

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

<font color="#008080">Imports</font>&nbsp;Prognoz.Platform.Interop.Cubes;<br /> <font color="#008080">Imports</font>&nbsp;Prognoz.Platform.Interop.Dimensions;<br /> <font color="#008080">Imports</font>&nbsp;Prognoz.Platform.Interop.Dt;<br /> <font color="#008080">Imports</font>&nbsp;Prognoz.Platform.Interop.ForeCollections;<br /> <font color="#008080">Imports</font>&nbsp;Prognoz.Platform.Interop.Rds;<br /> …<br /> <font color="#008080">Public</font>&nbsp;<font color="#008080">Shared</font>&nbsp;<font color="#008080">Sub</font>&nbsp;Main(Params:&nbsp;StartParams);<br /> <font color="#008080">Var</font><br /> &nbsp;&nbsp;&nbsp;&nbsp;mb:&nbsp;IMetabase;<br /> &nbsp;&nbsp;&nbsp;&nbsp;parent:&nbsp;IMetabaseObject;<br /> &nbsp;&nbsp;&nbsp;&nbsp;rdsDatabase:&nbsp;IRdsDatabase;<br /> &nbsp;&nbsp;&nbsp;&nbsp;loader:&nbsp;ICubeLoaderFromSource;<br /> &nbsp;&nbsp;&nbsp;&nbsp;DimBindings:&nbsp;ICubeLoaderDimensionBindings;<br /> &nbsp;&nbsp;&nbsp;&nbsp;bind:&nbsp;ICubeLoaderDimensionBinding;<br /> &nbsp;&nbsp;&nbsp;&nbsp;DimModel:&nbsp;IDimensionModel;<br /> &nbsp;&nbsp;&nbsp;&nbsp;Calend:&nbsp;ICubeLoaderDimensionBinding;<br /> &nbsp;&nbsp;&nbsp;&nbsp;DateConv:&nbsp;IDateConverter;<br /> &nbsp;&nbsp;&nbsp;&nbsp;creator:&nbsp;IDtObjectCreator;<br /> &nbsp;&nbsp;&nbsp;&nbsp;prov:&nbsp;IDtTextProvider;<br /> &nbsp;&nbsp;&nbsp;&nbsp;Result:&nbsp;ICubeLoaderResult;<br /> &nbsp;&nbsp;&nbsp;&nbsp;Object:&nbsp;IMetabaseObject;<br /> &nbsp;&nbsp;&nbsp;&nbsp;List,&nbsp;Arr:&nbsp;IArrayList;<br /> &nbsp;&nbsp;&nbsp;&nbsp;Item:&nbsp;object;<br /> &nbsp;&nbsp;&nbsp;&nbsp;i:&nbsp;Integer;<br /> <font color="#008080">Begin</font><br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Get&nbsp;current&nbsp;repository<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;mb&nbsp;:=&nbsp;Params.Metabase;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Get&nbsp;the&nbsp;TSDB_FOLDER folder,&nbsp;in&nbsp;which&nbsp;time&nbsp;series<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;database&nbsp;is&nbsp;created<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;parent&nbsp;:=&nbsp;mb.ItemById[<font color="#800000">&quot;TSDB_FOLDER&quot;</font>].Bind();<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Get&nbsp;MDM&nbsp;repository<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;rdsDatabase&nbsp;:=&nbsp;mb.ItemById[<font color="#800000">&quot;RDS_LOAD&quot;</font>].Bind()&nbsp;<font color="#008080">As</font>&nbsp;IRdsDatabase;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Create&nbsp;object&nbsp;for&nbsp;data&nbsp;loading<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;loader&nbsp;:=&nbsp;<font color="#008080">New</font>&nbsp;CubeLoaderFromSource.Create();<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Specify&nbsp;MDM&nbsp;repository,&nbsp;that&nbsp;is&nbsp;used&nbsp;on&nbsp;loading<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;loader.RdsDatabase&nbsp;:=&nbsp;rdsDatabase.Open(<font color="#008080">Null</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Specify&nbsp;that&nbsp;time&nbsp;series&nbsp;database&nbsp;is&nbsp;created<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;for&nbsp;loaded&nbsp;data<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;loader.Type&nbsp;:=&nbsp;CubeLoaderType.cltRubricator;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Specify&nbsp;the folder,&nbsp;in&nbsp;which&nbsp;time&nbsp;series&nbsp;database&nbsp;is&nbsp;created<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;loader.Parent&nbsp;:=&nbsp;parent;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Get&nbsp;dimension&nbsp;bindings&nbsp;to&nbsp;data&nbsp;source&nbsp;fields<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;DimBindings&nbsp;:=&nbsp;loader.DimensionBindings;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Add&nbsp;binding&nbsp;for&nbsp;the&nbsp;CITY field<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;bind&nbsp;:=&nbsp;DimBindings.Add(<font color="#800000">&quot;CITY&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Specify&nbsp;that&nbsp;dimension&nbsp;corresponds to&nbsp;the&nbsp;field,<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;the dimension is based&nbsp;on&nbsp;MDM&nbsp;dictionary&nbsp;CITY_DICT<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;DimModel&nbsp;:=&nbsp;mb.ItemById[<font color="#800000">&quot;CITY_DICT&quot;</font>].Bind()&nbsp;<font color="#008080">As</font>&nbsp;IDimensionModel;<br /> &nbsp;&nbsp;&nbsp;&nbsp;bind.Dictionary&nbsp;:=&nbsp;DimModel;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Specify&nbsp;index,&nbsp;by&nbsp;which&nbsp;binding&nbsp;is&nbsp;created<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;bind.Index&nbsp;:=&nbsp;DimModel.Indexes.FindById(<font color="#800000">&quot;UINDEX&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Specify identifier of&nbsp;attribute,&nbsp;based&nbsp;on which&nbsp;index&nbsp;is built<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;bind.AttributeId&nbsp;:=&nbsp;<font color="#800000">&quot;NAME&quot;</font>;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Add&nbsp;binding&nbsp;for&nbsp;the&nbsp;INDICATOR field.<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Dictionary&nbsp;for&nbsp;cretaing&nbsp;dimension,&nbsp;corresponding to&nbsp;this&nbsp;field,<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;is&nbsp;automatically&nbsp;created&nbsp;in&nbsp;MDM&nbsp;repository&nbsp;RDS_LOAD<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;DimBindings.Add(<font color="#800000">&quot;INDICATOR&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Add&nbsp;binding&nbsp;for&nbsp;calendar&nbsp;dimension<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;Calend&nbsp;:=&nbsp;DimBindings.AddCalendar(<font color="#800000">&quot;Year&quot;</font>,&nbsp;DimCalendarLevel.dclYear);<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Create&nbsp;object&nbsp;for&nbsp;parsing&nbsp;dates&nbsp;in&nbsp;data&nbsp;source<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;DateConv&nbsp;:=&nbsp;<font color="#008080">New</font>&nbsp;DateConverter.Create();<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Set&nbsp;date&nbsp;format<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;DateConv.CalendarDateFormat&nbsp;:=&nbsp;<font color="#800000">&quot;$YEAR$&quot;</font>;<br /> &nbsp;&nbsp;&nbsp;&nbsp;DateConv.ConvertShortYear&nbsp;:=&nbsp;<font color="#008080">True</font>;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Set&nbsp;created&nbsp;object&nbsp;to&nbsp;calendar&nbsp;dimension&nbsp;binding<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;Calend.Converter&nbsp;:=&nbsp;DateConv;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Add&nbsp;binding&nbsp;for&nbsp;data&nbsp;source&nbsp;values<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;loader.FactBindings.Add(<font color="#800000">&quot;Value&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Create&nbsp;object&nbsp;for&nbsp;working&nbsp;with&nbsp;data&nbsp;source<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;creator&nbsp;:=&nbsp;<font color="#008080">New</font>&nbsp;DtObjectCreator.Create();<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Create&nbsp;text&nbsp;data&nbsp;source&nbsp;from&nbsp;file<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;prov&nbsp;:=&nbsp;creator.CreateDtObjectFromFile(<font color="#800000">&quot;C:\result_exp.txt&quot;</font>)&nbsp;<font color="#008080">As</font>&nbsp;IDtTextProvider;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Specify&nbsp;field&nbsp;delimiter&nbsp;used&nbsp;in&nbsp;source<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;prov.DelimitedColumnDelimiter&nbsp;:=&nbsp;<font color="#800000">&quot;;&quot;</font>;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Load&nbsp;data&nbsp;and&nbsp;process&nbsp;loading&nbsp;result<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:=&nbsp;loader.LoadWithResult(prov,&nbsp;<font color="#008080">Null</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Get&nbsp;object,&nbsp;to&nbsp;which&nbsp;data&nbsp;was&nbsp;loaded<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;Object&nbsp;:=&nbsp;Result.Object;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Output&nbsp;information&nbsp;about object&nbsp;to&nbsp;console&nbsp;window<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;System.Diagnostics.Debug.WriteLine(<font color="#800000">&quot;Name&nbsp;and&nbsp;identifier&nbsp;of created&nbsp;time&nbsp;series&nbsp;database:&nbsp;&quot;</font>&nbsp;+<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object.Name&nbsp;+&nbsp;<font color="#800000">&quot;(&quot;</font>&nbsp;+&nbsp;Object.Id&nbsp;+&nbsp;<font color="#800000">&quot;)&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Get&nbsp;empty&nbsp;records&nbsp;and&nbsp;output&nbsp;them&nbsp;to&nbsp;console&nbsp;window<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;:=&nbsp;Result.NullStrings;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">If</font>&nbsp;List.Count&nbsp;&lt;&gt;&nbsp;<font color="#008000">0</font>&nbsp;<font color="#008080">Then</font><br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Diagnostics.Debug.WriteLine(<font color="#800000">&quot;Empty&nbsp;records:&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">For</font>&nbsp;<font color="#008080">Each</font>&nbsp;Item&nbsp;<font color="#008080">In</font>&nbsp;List&nbsp;<font color="#008080">Do</font><br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Arr&nbsp;:=&nbsp;Item&nbsp;<font color="#008080">As</font>&nbsp;IArrayList;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">For</font>&nbsp;i&nbsp;:=&nbsp;<font color="#008000">0</font>&nbsp;<font color="#008080">To</font>&nbsp;Arr.Count&nbsp;-&nbsp;<font color="#008000">1</font>&nbsp;<font color="#008080">Do</font><br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Diagnostics.Debug.Write(Arr.Item[i]);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Diagnostics.Debug.Write(<font color="#800000">&quot;;&nbsp;&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">End</font>&nbsp;<font color="#008080">For</font>;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Diagnostics.Debug.WriteLine(<font color="#800000">&quot;&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">End</font>&nbsp;<font color="#008080">For</font>;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">End</font>&nbsp;<font color="#008080">If</font>;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000">//&nbsp;Get&nbsp;duplicate&nbsp;records&nbsp;and&nbsp;output&nbsp;them&nbsp;to&nbsp;console&nbsp;window<br /> </font>&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;:=&nbsp;Result.DuplicatedStrings;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">If</font>&nbsp;List.Count&nbsp;&lt;&gt;&nbsp;<font color="#008000">0</font>&nbsp;<font color="#008080">Then</font><br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Diagnostics.Debug.WriteLine(<font color="#800000">&quot;Duplicate&nbsp;records:&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">For</font>&nbsp;<font color="#008080">Each</font>&nbsp;Item&nbsp;<font color="#008080">In</font>&nbsp;List&nbsp;<font color="#008080">Do</font><br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Arr&nbsp;:=&nbsp;Item&nbsp;<font color="#008080">As</font>&nbsp;IArrayList;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">For</font>&nbsp;i&nbsp;:=&nbsp;<font color="#008000">0</font>&nbsp;<font color="#008080">To</font>&nbsp;Arr.Count&nbsp;-&nbsp;<font color="#008000">1</font>&nbsp;<font color="#008080">Do</font><br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Diagnostics.Debug.Write(Arr.Item[i]);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Diagnostics.Debug.Write(<font color="#800000">&quot;;&nbsp;&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">End</font>&nbsp;<font color="#008080">For</font>;<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Diagnostics.Debug.WriteLine(<font color="#800000">&quot;&quot;</font>);<br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">End</font>&nbsp;<font color="#008080">For</font>;<br /> &nbsp;&nbsp;&nbsp;&nbsp;<font color="#008080">End</font>&nbsp;<font color="#008080">If</font>;<br /> <font color="#008080">End</font>&nbsp;<font color="#008080">Sub</font>;

See also:

ICubeLoaderFromSource