Такого же эффекта можно достичь средствами одного только SQL, используя обновляемые представления (updateable view).
Создадим представление для отображения данных бизнес-объекта Компания:
create view vcompany as
select * from
gd_contact c
join gd_company co on c.id=co.contactkey
left join gd_companycode cc on cc.companykey = c.id
Создадим триггер:recreate trigger vcompany_ai for vcompany
after insert
position 0
as
declare variable id integer;
begin
if (NEW.id IS NULL) then
id = GEN_ID(gd_g_unique, 1);
else
id = NEW.id;
insert into gd_contact (id, parent, contacttype, name)
values (:id, NEW.parent, 3, NEW.name);
insert into gd_company (contactkey, fullname)
values (:id, NEW.name);
end
Теперь добавить компанию в базу данных можно с помощью команды:insert into vcompany (name, parent)
values ('Company name', some_existing_folder_id)
Аналогичным образом реализуем обновление и удаление данных.
Комментариев нет:
Отправить комментарий