|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.08.2008, 18:59 | #1 |
Пользователь
Регистрация: 15.08.2008
Сообщений: 12
|
Одинаковые ветки в DBTreeView
Здравствуйте!
В моей программе нужно использовать компонент типа DBTreeView. И вот возникла такая проблемка. Если в дереве есть, например, 10 полностью одинаковых веток (имеющие разных родителей), то они со всеми внутренностями все равно в базе данных должны быть описаны 10 раз. Если потом что-то надо будет поменять, то придется менять все 10 строк. Можно ли как-то исхитриться и в DBTreeView сделать так, чтобы одному элементу "id" соответствовало несколько родительских "parent id"? Я пробовал так редактировать таблицу, но в таком случае в общем дереве отображается только одна из 10 одинаковых веток. Я использую dxDBTreeView от DevExpress, также видел еще несколько подобных компонентов, но те ругаются, что id не уникально. Может есть какой-то компонент для Delphi, который может не дублировать одинаковые записи? Ведь это же логично, что одинаковые записи в БД хранятся один раз, должно это быть где-то реализовано. Уже возникает мысль вручную пробежать по БД и сформировать TreeView, но тогда потом при редактировании БД тоже придется вручную вносить изменения в TreeView, что не очень хорошо. Единственное, что я нашел более-менее подходящим - это компонент JvDBTreeView. Но там другая проблема - при выборе в дереве, скажем, 4-ой из одинаковых веток таблица позиционируется всегда на 1-ю ветку. С одной стороны это логично, ведь компонент предполагает, что id уникально в таблице и, находя первое совпадение, позиционируется на эту строку, не обращая внимание на то, что parent id в этой строке не то, что в выбранном узле дерева. Надеюсь, что понятно объяснил А вообще, можно ли узнать для выбранного узла дерева его id и id родителя без ручного поиска по таблице? В свойствах элемента node ничего подобного не видно, там хранится только сам отображаемый текст. Вот и приходится, чтобы позиционироваться на полностью соответствующую строку в таблице, делать поиск текста (lookup) выделенного узла в таблице, а затем еще и поиск текста родительского узла. Неужели попроще никак нельзя? В общем надеюсь на подсказку. |
18.08.2008, 16:16 | #2 |
Форумчанин
Регистрация: 24.10.2007
Сообщений: 254
|
Какая субд?
|
18.08.2008, 17:19 | #3 | |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Цитата:
|
|
19.08.2008, 08:34 | #4 |
Пользователь
Регистрация: 15.08.2008
Сообщений: 12
|
База данных Paradox7.
Компонент конечно хороший, но в данном случае абсолютно не подходит. Он сразу ругается "Duplicate list Key номер такой-то" А весь смысл моей темы в том, что у меня Key не уникально! |
19.08.2008, 15:38 | #5 | |
Баламучу слегка...
Участник клуба
Регистрация: 01.11.2006
Сообщений: 1,585
|
Цитата:
Да, и DynamicTreeView лучше не трогай... Далековато ему еще до безглючной работы. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Одинаковые элементы | kodov | Общие вопросы Delphi | 3 | 11.08.2008 14:03 |
Почему на форуме нет ветки Пролог? | veter_s_morya | О форуме и сайтах клуба | 9 | 29.05.2008 18:35 |
Одинаковые строки | Македонский | Общие вопросы Delphi | 3 | 05.10.2007 14:40 |
изменение безопасности на ветки реестра | RIPPER | Безопасность, Шифрование | 3 | 22.11.2006 17:01 |