Hello, Ded!
You wrote on Tue, 07 Mar 2006 19:54:25 +0300:
>>CURRENT_TABLE
Бурная дискуссия.
ИМХО, Единственно зачем это может быть нужно для универсального триггера на
все таблицы
например AFTER UPDATE 255
if (not current_table in('LOG','LOG_DETAIL')) then begin
id=gen_id(log_id_gen,1);
insert into log (id,atable,aoper,auser,adate) values
(:id,CURRENT_TABLE,'UPDATE',CURRENT_USER,CURRENT_TIMESTAMP);
/*пожеланию можно еще деталь вести*/
for select * from rdb$relations
join rdb$fileds .....
into ......
do
insert into LOG_DETAIL(id,field_name,old_value,new_value)
values ......;
end
Как результат будет пухнуть база неимоверно, зато можно посмотреть кто что
менял,
хотя тоже самое есть в генерилках статических триггеров тот же
логгинг в Expert (Дед правильно говорит)
Еще один вариант использования для проктологов,
когда в название таблицы отображается ее назначение,
например все документы хранятся с префиксом DOC_
все справочники с префиксом REF_
а в универсальном триггере, выполняется некая логика в зависимости названия
с использованием предопредленных полей.
В прочем это тоже можно релизовать тулзой кторая будет генерить спец.
триггеры сама.
Резюме:
По полезности далеко не на первом месте фича, скорее она вредна т.к.
порождает новое поколение проктологов.
************
Кстати а что с джойном с внешними источниками данных, например ODBC,
и с другой IB базой
например так
select * from table1 a
join ODBC('table2','CONNECTION_STR') b on a.code=b.code
В планах есть ??
With best regards, Konstantin Zaitcev.