Рекурсивная работа с деревьями
Добавлено: 23 окт 2009, 16:41
Использую Firebird 1.5
Windows Xp Prof
Написал процедуру которая делает выборку конкретной ветки из дерева, но почему то результатом выполнения является только 2 уровня вложения.
Вот ее код
Вот таблица
При просмотре ее работы через отладчик в IBExperte видно что она заходит в дочернии но их в конечном запросе не появляется.
В чем может быть проблема ?
Заранее благодарю за ответ
Windows Xp Prof
Написал процедуру которая делает выборку конкретной ветки из дерева, но почему то результатом выполнения является только 2 уровня вложения.
Вот ее код
Код: Выделить всё
create procedure LOAD_TREE (
KODGR integer)
returns (
KOD_GROUP integer,
NAMEGROUP varchar(60) character set WIN1251,
VHOD integer)
as
begin
Select kodgroup,namegroup,vhod from group where kodgroup = :kodgr
into :kod_group,:namegroup,:vhod;
suspend;
for select kodgroup,namegroup,vhod from group where (vhod = :kodgr)
into :kod_group,:namegroup,:vhod do
begin
execute procedure load_tree(:kod_group) returning_values :kod_group,:namegroup,:vhod;
suspend;
end
end
Вот таблица
Код: Выделить всё
TABLE GROUP (
KODGROUP INTEGER NOT NULL,
NAMEGROUP VARCHAR(100),
VHOD INTEGER )
В чем может быть проблема ?
Заранее благодарю за ответ