PriorDataLinkDependentsClear: Boolean;
PriorDataLinkDependentsClear: boolean;
Свойство PriorDataLinkDependentsClear определяет, используется ли предварительная очистка объектов, зависимых по содержимому.
Возможные значения:
True. Предварительная очистка используется;
False. По умолчанию. Предварительная очистка не используется.
Для выполнения примера в репозитории необходимо наличие двух таблиц с идентификаторами «TABLE_A» и «TABLE_B». Одно из полей таблицы «TABLE_A» должно являться внешним ключом любого поля таблицы «TABLE_B».
Добавьте ссылку на системную сборку Metabase.
Sub UserProc;
Var
MB: IMetabase;
Update: IMetabaseUpdate;
Root: IMetabaseUpdateFolderNode;
TableObj: IMetabaseUpdateDataObjectNode;
TableAsKeyObj: IMetabaseUpdateDataObjectNode;
Begin
// Получим репозиторий
MB := MetabaseClass.Active;
// Создадим обновление
Update := MB.CreateUpdate;
// Получим объект, содержащий структуру обновления
Root := Update.RootFolder;
// Добавим в обновление таблицу с идентификатором «TABLE_A»
TableObj := Root.Add(MetabaseUpdateNodeType.DataObject) As IMetabaseUpdateDataObjectNode;
TableObj.Object := MB.ItemById("TABLE_A");
// Будем обновлять данные и метаданные таблицы
TableObj.Method := MetabaseUpdateMethod.All;
// Включим пересоздание объекта при обновлении
TableObj.AlterType := MetabaseObjectAlterType.Recreate;
// Добавим в обновление таблицу с идентификатором «TABLE_B»
TableAsKeyObj := Root.Add(MetabaseUpdateNodeType.DataObject) As IMetabaseUpdateDataObjectNode;
TableAsKeyObj.Object := MB.ItemById("TABLE_B");
// Будем обновлять данные и метаданные таблицы
TableAsKeyObj.Method := MetabaseUpdateMethod.All;
// Отсортируем добавленные объекты
Root.Sort(UpdateSortMode.ByDepends);
// Включим пересоздание объекта при обновлении
TableAsKeyObj.AlterType := MetabaseObjectAlterType.Recreate;
// Установим флажок «Пересоздавать таблицы»
Update.AlterType(MetabaseObjectClass.KE_CLASS_TABLE) := MetabaseObjectAlterType.Recreate;
// Применим предварительную очистку объектов, зависимых по содержимому
Update.PriorDataLinkDependentsClear := True;
// Сохраним обновление в файл
Update.SaveToFileNF("C:\Update.pefx");
End Sub UserProc;
После выполнения примера выполнится сохранение обновления с заданными параметрами в файл по заданному пути.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
Update: IMetabaseUpdate;
Root: IMetabaseUpdateFolderNode;
TableObj: IMetabaseUpdateDataObjectNode;
TableAsKeyObj: IMetabaseUpdateDataObjectNode;
Begin
// Получим репозиторий
MB := Params.Metabase;
// Создадим обновление
Update := MB.CreateUpdate();
// Получим объект, содержащий структуру обновления
Root := Update.RootFolder;
// Добавим в обновление таблицу с идентификатором «TABLE_A»
TableObj := Root.Add(MetabaseUpdateNodeType.untDataObject) As IMetabaseUpdateDataObjectNode;
TableObj.Object := MB.ItemById["TABLE_A"];
// Будем обновлять данные и метаданные таблицы
TableObj.Method := MetabaseUpdateMethod.mumAll;
// Включим пересоздание объекта при обновлении
TableObj.AlterType := MetabaseObjectAlterType.meobaltyRecreate;
// Добавим в обновление таблицу с идентификатором «TABLE_B»
TableAsKeyObj := Root.Add(MetabaseUpdateNodeType.untDataObject) As IMetabaseUpdateDataObjectNode;
TableAsKeyObj.Object := MB.ItemById["TABLE_B"];
// Будем обновлять данные и метаданные таблицы
TableAsKeyObj.Method := MetabaseUpdateMethod.mumAll;
// Отсортируем добавленные объекты
Root.Sort(UpdateSortMode.usmByDepends);
// Включим пересоздание объекта при обновлении
TableAsKeyObj.AlterType := MetabaseObjectAlterType.meobaltyRecreate;
// Установим флажок «Пересоздавать таблицы»
Update.AlterType[(MetabaseObjectClass.KE_CLASS_TABLE).value__] := MetabaseObjectAlterType.meobaltyRecreate;
// Применим предварительную очистку объектов, зависимых по содержимому
Update.PriorDataLinkDependentsClear := True;
// Сохраним обновление в файл
Update.SaveToFileNF("C:\\Update.pefx");
End Sub;
См. также: