Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2014, 10:50   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
Вопрос Чтение дерева неизвесной глубины из БД

Доброго времени суток!

Каким образом можно прочитать древовидную структуру данных из БД?

Есть таблица:
[id] [name] [type] [parent]
0 Корень 2 null
1 "Папка 1" 2 0
2 "Папка 2" 2 0
3 "Папка 3" 2 2
и так 10 тыс. записей + данные, у данных поле type = 1

По приведенной струкуре должно быть дерево:
Код:
Корень
   Папка 1
   Папка 2
      Папка 3
Как читать такие деревья рекурсивно?
Вложенность бесконечная... нет никаких данных о кол-ве суб-узлов. Только то, что выше...
Человек_Борща вне форума Ответить с цитированием
Старый 02.06.2014, 11:02   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Подозреваю что MySQL? Огорчу - там средств древовидного доступа на уровне SQL нет
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.06.2014, 11:22   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Ага. ясно. буду сам думать. Вопрос можно закрыть.
Человек_Борща вне форума Ответить с цитированием
Старый 02.06.2014, 14:52   #4
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,774
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Как читать такие деревья рекурсивно?
Вложенность бесконечная... нет никаких данных о кол-ве суб-узлов. Только то, что выше...
На самом деле ответ на вопрос зависит от того, где именно нужно дерево. Древовидные запросы в SQL -- больше для поиска по деревьям на стороне сервера. Если же требуется вывести дерево TreeView, можно воспользоваться и плоским запросом, в том числе и рекурсивно, строя дерево на клиенте программно.
Vapaamies вне форума Ответить с цитированием
Старый 03.06.2014, 07:16   #5
superedward
Форумчанин
 
Аватар для superedward
 
Регистрация: 27.11.2012
Сообщений: 190
По умолчанию

Подгружать узлы-дети программно по мере раскрывания пользователем узлов-родителей
superedward вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
стек произвольной глубины tiger() Общие вопросы C/C++ 10 11.05.2011 13:47
расчет глубины погружения тела Hitman15 Помощь студентам 2 01.05.2010 21:00
Увеличение "глубины" вызова рекурсивных процедур Mixim Общие вопросы Delphi 1 06.03.2010 12:42
Работа с DIB, изменение глубины цвета JOHNKZ1 Мультимедиа в Delphi 7 18.12.2008 06:52
Как отобразить категории, имеющие вложенность произвольной глубины?! Aska БД в Delphi 4 31.10.2007 01:03