DeferredLoading: Boolean;
DerreredLoading: Boolean;
The DeferredLoading property determines whether the deferred loading of object description on working in the repository is Performed.
The property is available for use if on the server where the repository is located, one of the following DBMS is used:
Oracle 9.0 or later.
Microsoft SQL Server 2008 or later.
Ole DB;
Teradata;
PostgreSQL;
SQLite.
If the property has the True value then on connecting the descriptions of only those objects will be loaded which are required to work in the repository.
Loading of descriptors will be performed in the following order:
If the last selected object is not specified, the only first two levels of the tree of the metabase objects are loaded. If the child objects for the first level objects are not found, then the + symbol is removed from opposite to the folder or container objects.
Descriptors of this object with all parent objects and objects of the same level for each parent up to the root are loaded, if the last object is specified.
The loaded descriptions will be cached in memory.
NOTE. The property does not influence the objects for which the IMetabaseObjectDescritpor.IsDeferred attribute is set.
Executing the example requires that the repository manager contains a schema with the RepositoryP7 identifier. The type of the metabase server supporting the deferred loading of descriptors must be selected.
Sub UserProc;
Var
MAN: IMetabaseManager;
Defs: IMetabaseDefinitions;
Def: IMetabaseDefinition;
Begin
MAN := MetabaseManagerFactory.Active;
Defs := MAN.Definitions;
Def := Defs.FindById("PPRepository");
If (Def.DriverId <> "ORCL") And (Def.DriverId <> "MSSQL") Then
Def.DeferredLoading := True;
Def.Save;
End If;
End Sub UserProc;
After executing the example for the specified description of the repository objects the label including the deferred loading of the metabase descriptors will be set.
The requirements and result of the Fore.NET example execution match with those in the Fore example.
Imports Prognoz.Platform.Interop.Metabase;
Public Sub UserProc(Params: StartParams);
Var
MbMan: IMetabaseManager;
MAN: MetabaseManagerFactory = New MetabaseManagerFactoryClass();
Defs: IMetabaseDefinitions;
Def: IMetabaseDefinition;
Begin
MbMan := MAN.Active;
Defs := MbMan.Definitions;
Def := Defs.FindById("PPRepository");
If (Def.DriverId <> "ORCL") And (Def.DriverId <> "MSSQL") Then
Def.DeferredLoading := True;
Def.Save();
End If;
End Sub;
See also: