Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.028 c
1-84414
Alex-21
2003-06-04 20:52
2003.06.26
TabSheet


3-83862
NataliK
2003-06-02 11:35
2003.06.26
Подскажите алгоритм


1-84180
Doc
2003-06-11 17:21
2003.06.26
String, TObject и т.д. - Pointer?


14-84619
Malder
2003-06-09 10:53
2003.06.26
Программа настройки w2k


1-84286
Dmk
2003-06-14 21:44
2003.06.26
Как вернуть форму к предыдущему состоянию





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский