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

Вниз

Drag&Drop деревьев   Найти похожие ветки 

 
Денис Курьин ©   (2003-06-02 14:27) [0]

Доброго времени суток, уважаемые Мастера!
Подскажите, как осуществить Drag&Drop из одного дерева в другое с перекодировкой дерева Tree_2 в зависимости от структуры перетаскиваемой ветви дерева Tree_1, а также копированием соответствующих данных, хранящихся в других таблицах, связаных с деревом Tree_1?


 
Карелин Артем ©   (2003-06-02 14:34) [1]

Вообще-то деревья в базе можно хранить туевой хучей способов. Ответ можно дать только при более подробной формулировке.
Вопрос на засыпку: если можно построить дерево из содержимого некой базы и получить связанные с деревом даные, то почему нельзя получить эти данные для ветки и засунуть в другое место?


 
Денис Курьин ©   (2003-06-02 14:42) [2]

Как получить SQL-запросом всех детей ветви, если кодировка деревьев следующая:
Id Parent Name
1 0 111
2 0 222
3 1 111_333
4 3 333_444
Допустим, я хочу получить ветвь с Id = 1 и всех ее потомков (Id=1,3,4)
А потом эту ветку засунуть в другое дерево но c Id = 15?


 
Соловьев ©   (2003-06-02 14:51) [3]


> Денис Курьин © (02.06.03 14:42)

в парадоксе очень тяжело работать с деревьми, так как нельзя сделать ХП с рекурсией, прийдется писать в цыкле запрос вида
select *
from table
where id=:idparent


 
Zacho ©   (2003-06-02 14:52) [4]


> Денис Курьин © (02.06.03 14:42)

В LocalSQL - никак. В разных SQL-серверах есть разные способы для этого, а для Парадокса только рекурсивной процедурой.


 
Денис Курьин ©   (2003-06-02 14:53) [5]

А как это будет выглядеь в целом, куда мне промежуточные результаты складывать, промежуточная таблица не желательна.


 
Соловьев ©   (2003-06-02 14:54) [6]


> куда мне промежуточные результаты складывать,

динамический массив.


 
Денис Курьин ©   (2003-06-02 14:56) [7]

а если у этой ветви 30 000 потомков, тогда как, а топтаться задача будет на 486 :-(


 
Соловьев ©   (2003-06-02 15:00) [8]


> этой ветви 30 000 потомков,

а ты по уровням переноси, а не сразу всех.


 
Денис Курьин ©   (2003-06-02 15:07) [9]

а как быть с перекодировкой дерева-получателя, ведь мне надо точно такую же структуру построить


 
Соловьев ©   (2003-06-02 15:10) [10]

ну когда ты сохранишь первый уровень, то получишь новые id этих элементов, вот их и присвоишь следующему уровню вместо старых


 
Денис Курьин ©   (2003-06-02 15:18) [11]

Ну, вроде вкурил, но еще каша в голове, попробую, может и получится, всем огромное спасибо


 
Карелин Артем ©   (2003-06-03 14:43) [12]

Скажем так: у веток деревьев есть некое свойство TTreeNode.Data
Так вот туда при создании ветки можно запихать идентификатор ветки.
Дальше можно пройтись по всем дочерним элементам нужной ветки и получив нужные идентификаторы поместить на новое место.



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

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

Наверх




Память: 0.49 MB
Время: 0.021 c
14-84627
Andrey V.
2003-06-06 11:57
2003.06.26
ТМемо & XP


14-84684
Дмитрий К.К.
2003-06-11 06:23
2003.06.26
Именинники 11 июня


1-84413
qwerty2
2003-06-06 16:32
2003.06.26
Создание DCOM объекта в Win98


1-84251
Step[B.M.]
2003-06-13 13:01
2003.06.26
---|Ветка была без названия|---


1-84433
Эстонец
2003-06-09 18:37
2003.06.26
Диалог смены иконки