Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод дерева 
:(
    Опции темы
tishaishii
Дата 15.7.2010, 07:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

Репутация: нет
Всего: 8



Как вывести всё дерево: TREE(ID, ID_PARENT)?
PM MAIL ICQ Skype   Вверх
Gluttton
Дата 15.7.2010, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: 7
Всего: 54



Вот похожая тема, возможно поможет.


--------------------
Слава Україні!
PM MAIL   Вверх
Frees
Дата 15.7.2010, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 1
Всего: 54



Код

CREATE PROCEDURE GET_TREE (
    PARENTID INTEGER)
RETURNS (
    TREE_ID INTEGER,
    PARENT_ID INTEGER
    NAME VARCHAR(50))
AS
BEGIN
  FOR SELECT T.TREE_ID, T.PARENT_ID, T.NAME
  FROM TABLE_TREE T
  WHERE ((T.PARENT_ID IS NULL) AND (:PARENTID IS NULL)) OR (T.PARENT_ID = :PARENTID)
  ORDER BY T.NAME
  INTO :TREE_ID, :PARENT_ID, :NAME
  DO BEGIN
     SUSPEND;
     /* Рекурсия для каждого листочка */
     FOR SELECT R.TREE_ID, R.PARENT_ID, R.NAME
     FROM GET_TREE( :TREE_ID ) R
     INTO :TREE_ID, :PARENT_ID, :NAME
     DO BEGIN
       SUSPEND;
     END
  END
END


получить все дерево запросом

Код

SELECT * 
FROM GET_TREE(NULL)


Это сообщение отредактировал(а) Frees - 15.7.2010, 10:59


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
tishaishii
Дата 24.7.2010, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

Репутация: нет
Всего: 8



Спасибо.
Уточняю: вывести всё дерево, если имеется значение TREE.ID, которое не обязательно является корнем дерева.
PM MAIL ICQ Skype   Вверх
Akella
Дата 25.7.2010, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



можно использовать спец. компоненты, например дерево из DevExpress или вот эти - FibExTree
PM MAIL   Вверх
tishaishii
Дата 29.7.2010, 15:29 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

Репутация: нет
Всего: 8



Меня GUI не интересует. На выходе будет RDF.
Интересует подход работы с деревом с учётом особенностей FB, конкретно: один вывод и тот же вывод вне зависимости, на входе корневой или дочерний узел.
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0450 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.