Текущий архив: 2003.07.07;
Скачать: CL | DM;
Вниз
Определение потомков в древовдном расположение данных Найти похожие ветки
← →
me2 (2003-06-11 14:38) [0]Помогите написать ХП, которая отображала бы всех потомков некоторого узла. Таблица имеет следующую структуру:
group_code group_name group_parent
← →
Жук (2003-06-11 15:08) [1]Рекурсивное обращение к ХП, должно спасти отца русской демократии
← →
me2 (2003-06-11 15:41) [2]Да, я знаю, что нужно использовать рекурсию и написал следующие
CREATE PROCEDURE GET_MATERIALS_GROUP_PARENTS (
I_GROUP_CODE INTEGER)
RETURNS (
GROUP_PARENT_CODE INTEGER)
AS
DECLARE VARIABLE I_G_CODE INTEGER;
begin
for select "material_group_parent" from material_groups where
"material_group_code" = :i_group_code
into :group_parent_code
do
begin
while (:group_parent_code is not null) do
begin
for
select * from GET_MATERIALS_GROUP_PARENTS(:group_parent_code)
into :group_parent_code
do
begin
suspend;
end
end
end
end
Но данный код не работает. Поправте, пожалуйста.
← →
bSava (2003-06-11 15:47) [3]
CREATE PROCEDURE TREE_ID (
ID_ROD INTEGER)
RETURNS (
ID_TREE INTEGER)
AS
DECLARE VARIABLE ID INTEGER;
begin
/* select group_code from TABLE where group_code = :id_rod;*/
for select tp1.group_code
from tipvlog tp1
where tp1.group_parent = :id_rod into :id_tree
do
begin
if (not exists(select * from TABLE
where TABLE.group_parent = :id_tree)) then
begin
suspend;
end
else
begin
id = id_tree;
for
select id_tree from tree_id (:id_tree) into : id_tree
do begin
suspend;
end
id_tree = id;
suspend;
end
end
end
вот тебе код для таблицы ели я правильно понял смысл твоих полей
← →
me2 (2003-06-11 16:00) [4]2 bSava © (11.06.03 15:47)
Да, ты правильно понял. Работает. Спасибо.
Страницы: 1 вся ветка
Текущий архив: 2003.07.07;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.006 c