IMetabaseUpdateObjectNode.KeepNativeNames

Синтаксис

KeepNativeNames: Boolean;

KeepNativeNames: boolean;

Описание

Свойство KeepNativeNames определяет признак сохранения физического имени объекта при обновлении.

Комментарии

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

Пример

Для выполнения примера в репозитории предполагается наличие справочника НСИ с идентификатором RDS.

Добавьте ссылки на системные сборки: Metabase, Rds.

Sub UserProc;
Var
    Mb: IMetabase;
    rds: IMetabaseObjectDescriptor;
    metaDict: IMetaDictionary;
    Attrs: IMetaAttributes;
    Obj: IMetabaseObjectDescriptor;
    Upd: IMetabaseUpdate;
    Nd: IMetabaseUpdateObjectNode;
    RootFolder: IMetabaseUpdateFolderNode;
    NdFol: IMetabaseUpdateFolderNode;
Begin
    
// Получим репозиторий
    Mb := MetabaseClass.Active;
    
// Получим справочник НСИ
    rds := mb.ItemById("RDS");
    metaDict := rds.Bind 
As IMetaDictionary;
    
// Получим атрибуты справочника
    Attrs := metaDict.Attributes;
    
// Определим использование имени таблицы при обновлении репозитория
    Attrs.KeepTableNativeNameOnMetabaseUpdate := True;
    
// Создадим объект обновления
    Upd := Mb.CreateUpdate;
    
// Создадим объект структуры обновления
    RootFolder := Upd.RootFolder;
    
// Получим таблицу справочника НСИ
    Obj := Mb.ItemById("RDS").Children.Item(0).Edit;
    
// Переименуем таблицу
    Obj.Name := "123Table";
    
// Добавляем таблицу в структуру обновления
    Nd := RootFolder.Add(MetabaseUpdateNodeType.Object) As IMetabaseUpdateObjectNode;
    Nd.Object := Obj;
    
// Сохраняем физическое имя таблицы при обновлении
    Nd.KeepNativeNames := True;
    
// Добавляем справочник НСИ в структуру обновления
    Nd := RootFolder.Add(MetabaseUpdateNodeType.Object) As IMetabaseUpdateObjectNode;
    Nd.Object := rds;
    NdFol := (Nd 
As IMetabaseUpdateFolderNode);
    
// Сохраняем обновление в файл
    Upd.SaveToFileNF("C:\Update.pefx");
End Sub UserProc;

Imports Prognoz.Platform.Interop.Rds;

Public Shared Sub Main(Params: StartParams);
Var
    Mb: IMetabase;
    rds: IMetabaseObjectDescriptor;
    metaDict: IMetaDictionary;
    Attrs: IMetaAttributes;
    Obj: IMetabaseObjectDescriptor;
    Upd: IMetabaseUpdate;
    Nd: IMetabaseUpdateObjectNode;
    RootFolder: IMetabaseUpdateFolderNode;
    NdFol: IMetabaseUpdateFolderNode;
Begin
    
// Получим репозиторий
    Mb := Params.Metabase;
    
// Получим справочник НСИ
    rds := mb.ItemById["RDS"];
    metaDict := rds.Bind() 
As IMetaDictionary;
    
// Получим атрибуты справочника
    Attrs := metaDict.Attributes;
    
// Определим использование имени таблицы при обновлении репозитория
    Attrs.KeepTableNativeNameOnMetabaseUpdate := True;
    
// Создадим объект обновления
    Upd := Mb.CreateUpdate();
    
// Создадим объект структуры обновления
    RootFolder := Upd.RootFolder;
    
// Получим таблицу справочника НСИ
    Obj := Mb.ItemById["RDS"].Children.Item[0].Edit();
    
// Переименуем таблицу
    Obj.Name := "123Table";
    
// Добавляем таблицу в структуру обновления
    Nd := RootFolder.Add(MetabaseUpdateNodeType.untObject) As IMetabaseUpdateObjectNode;
    Nd.Object := Obj;
    
// Сохраняем физическое имя таблицы при обновлении
    Nd.KeepNativeNames := True;
    
// Добавляем справочник НСИ в структуру обновления
    Nd := RootFolder.Add(MetabaseUpdateNodeType.untObject) As IMetabaseUpdateObjectNode;
    Nd.Object := rds;
    NdFol := (Nd 
As IMetabaseUpdateFolderNode);
    
// Сохраняем обновление в файл
    Upd.SaveToFileNF("C:\" + "Update.pefx");
End Sub;

В результате выполнения примера будет сформировано обновление. Физическое имя таблицы изменено и будет сохранено при обновлении.

См. также:

IMetabaseUpdateObjectNode