Привет всем! :)
Почему бы не ввести специальную конструкцию, для вызова из блока самого
себя?
Например RDB$SELF или RDB$THIS
Пример удаления ветки из дерева:
CREATE TABLE SYMPTOMS
(
ID D_ID,
PARENT_ID D_ID,
CONSTRAINT PK_SYMPTOMS PRIMARY KEY (ID),
CONSTRAINT FK_SYMPTOMS_PARENT_ID FOREIGN KEY (SYM_ID) REFERENCES
SYMPTOMS (ID)
);
execute block(ID: D_ID) returnung (CNT: integer)
as
declare variable CID D_ID;
begin
CNT = 0
for select ID from SYMPTOMS where PARENT_ID = :ID into :CID do
CNT = CNT + RDB$SELF(:ID);
delete from SYMPTOMS where ID = :ID;
end
--
Александр Замараев