Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.21;
Скачать: CL | DM;

Вниз

Хитрый SQL на древовидная структуре   Найти похожие ветки 

 
Vagrant ©   (2002-11-01 03:13) [0]

Привет! У меня такой вопрос:
Есть таблица в которой храниться дерево
ID integer
ParentID integer
Data String

Каким образом можно получить список всех детей у выбранного узла?
Причем в выборке должны присутствовать также и внуки,правнуки и т.д...


 
Vagrant ©   (2002-11-01 03:16) [1]

Вопрос в догонку. Поддерживает ли FireBird рекурсивные запросы?


 
Dr_Mike ©   (2002-11-01 03:19) [2]

При такой простой организации дерева есть только один способ - перебор всех записей по порядку в отсортированной по ParentID(в порядке возрастания) таблицы с одновременным ребилдингом кастового дерева


 
Dr_Mike ©   (2002-11-01 03:21) [3]

И как же ты хочешь организовать эти рекурсивные запросы ?


 
Vagrant ©   (2002-11-01 04:39) [4]

В оракле это возможно посредством операторов
CONNECT BY и START WITH. Вот я и думал что в Interbase тоже есть что то похожее....


 
Кулюкин Олег ©   (2002-11-01 09:05) [5]

В IB я такое делал через хранимые процедуры.
Рекурсия, разумеется.


 
Карелин Артем ©   (2002-11-01 10:06) [6]

У меня такая же хрень.
Я сделал такой финт:
1) чуть изменил TTreeNode /Добавил идентификаторы, по которым я мог бы однозначно идентифицировать узел переменная id у ноды равна идентификатору записи ;)/. Это решило проблему поиска записи в базе, если на разных уровнях дерева и в разных местах могут быть ветки с одинаковым текстом.
2) Рекурсия у меня шла по дереву, а не базе. А в базе простой поиск по папе.
В результате достигнул очень большой скорости...

Пример такой рекурсии был на www.Ibase.ru



Страницы: 1 вся ветка

Текущий архив: 2002.11.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
1-69377
Cobalt
2002-11-10 12:00
2002.11.21
Из чего же складывается высота ListBox-a?


1-69305
Kinder
2002-11-12 13:21
2002.11.21
Подскажите начинающему


3-69130
Leshik
2002-10-30 09:31
2002.11.21
Как соединить несколько баз по общему полю?


1-69252
jen_bond
2002-11-11 19:51
2002.11.21
перебор переменых


1-69244
Delph
2002-11-11 16:18
2002.11.21
Пример ComboBox в ячейке DBGrid вместо значения.