IDatabaseInitExecuteSetup.Macro

Синтаксис Fore

Macro: String;

Синтаксис Fore.NET

Macro: String;

Описание

Свойство Macro определяет наименование метода, который будет выполняться после подключения к базе данных.

Комментарии

В качестве значения данного свойства должно быть указано наименование статической процедуры, имеющей только один параметр с типом ISecurityConnection. Процедура должна быть реализована в том объекте, который указан в свойстве Module. Наименование указывается в следующем формате: <НаименованиеКласса>.<НаименованиеПроцедуры>, либо <Пространство имен>.<НаименованиеКласса>.<НаименованиеПроцедуры> если реализация находится в .NET-сборке.

Процедура будет выполняться непосредственно после самого подключения и перед выполнением каких-либо других запросов. Созданное подключение будет доступно во входном параметре процедуры. Используя интерфейсы сборки Dal можно произвести какие-либо дополнительные настройки подключения.

Пример Fore

Для выполнения примера предполагается наличие в репозитории базы данных с идентификатором «BD». Также в репозитории должен быть создан модуль с идентификатором «PrepareDB». В модуле реализована процедура, которая будет вызываться после подключения к БД.

Текст модуля

Sub UserProc;
Var
    MB: IMetabase;
    DB: IDatabaseInitExecuteSetup;
Begin
    MB := MetabaseClass.Active;
    DB := MB.ItemById("BD").Edit As IDatabaseInitExecuteSetup;
    DB.Module := MB.ItemById("PrepareDB");
    DB.Macro := "PrepareDB.OnDBConnecting";
    (DB As IMetabaseObject).Save;
End Sub UserProc;

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

Пример Fore.NET

Для выполнения примера предполагается наличие в репозитории базы данных с идентификатором «BD». Также в репозитории должна быть создана .NET-сборка с идентификатором «PrepareDB». Сборка содержит .NET-модуль с реализацией процедуры, которая будет вызываться после подключения к БД.

Текст .NET-модуля

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    DB: IDatabaseInitExecuteSetup;
Begin
    MB := Params.Metabase;
    DB := MB.ItemById["BD"].Edit() As IDatabaseInitExecuteSetup;
    DB.Module := MB.ItemById["PrepareDB"];
    DB.Macro := "PrepareDB.PrepareDB.OnDBConnecting";
    (DB As IMetabaseObject).Save();
End Sub;

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

См. также:

IDatabaseInitExecuteSetup