![]() |
|
|
![]()
|
|
| Foron |
|
|||
|
Unregistered |
Подскажите пожалуйста.
Есть TreeView, есть ADO, есть СУБД. Нужно реализовать удаление любого выбранного в TreeView узла, причем, если есть вложенность, то удалить все вложенные узлы тоже. Как из БД, так и из TreeView. Подскажите пожалуйста, как это сделать |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 17 Всего: 162 |
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| FRAGNATIC |
|
|||
|
..::Свирепый Кодер::.. ![]() ![]() Профиль Группа: Участник Сообщений: 901 Регистрация: 17.10.2004 Где: ICQ Репутация: 2 Всего: 11 |
а без компонента?
|
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 17 Всего: 162 |
все зависит от того как вы храните дерево -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| FRAGNATIC |
|
|||
|
..::Свирепый Кодер::.. ![]() ![]() Профиль Группа: Участник Сообщений: 901 Регистрация: 17.10.2004 Где: ICQ Репутация: 2 Всего: 11 |
Name
ID - ключевое поле ParentID - ид родителя |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 2 Всего: 64 |
В узлы дерева, при его заполнении, читаешь ID, в поле Data (не забудь потом освободить память на OnDeletion), а затем пишешь такой код:
И не забудь транзакцию завершить, если СУРБД поддерживает ее. -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| FRAGNATIC |
|
|||
|
..::Свирепый Кодер::.. ![]() ![]() Профиль Группа: Участник Сообщений: 901 Регистрация: 17.10.2004 Где: ICQ Репутация: 2 Всего: 11 |
<Spawn>
спасибо тока еслибы всё было так просто! уровень вложености может быть любым. Он не ограничен ) у раздела может быть куча подразделов а у подразделов тоже могут быть подразделы и так далее хранится это всё в таблице Tree структура её такая Name-имя раздела ID - ключивое поле ParentID - ID родителя тоесть головнова раздела) и вот возник вопрос как удалять раздел так чтобы и все его подразделы и подразделы подразделов удалились ведь их может быть бесчётное кол-во или одним даже SQL запросм типа DELETE FROM Tree WHERE ID in (SELECT ID FROM Tree WHERE ParentID in (здесь ещё чё-то)) БД access техн доступа ADO нашлё код хранимой процедуры для интербэйс но у меня даже не выходит программно её в аксэс создать
Это сообщение отредактировал(а) FRAGNATIC - 31.10.2005, 12:53 |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 1 Всего: 154 |
Рекомендую воспользоваться компонентом TdxDBTreeList из библиотеки DevExpress.
Там кстати есть примеры того, что ты хочешь сделать. Можно конечно реализовать и без компонента такое, но я не понимаю, зачем изобретать велосипед, и делать то, что, что уже неплохо сделано другими. -------------------- |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 2 Всего: 64 |
FRAGNATIC Все имеено так просто. Я постоянно использую на любой уровень вложенности. Ты, видимо, не до конца понял, что я написал))
На счет удаления - это просто делается триггером на стороне сервера. При большой вложенности получится своего рода рекурсия, которая убьет все дочерние узлы, но у тебя Access, так что, видимо, прийдется самому все удалять... -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| offline |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 474 Регистрация: 7.2.2005 Репутация: 7 Всего: 7 |
посмотри еще EhLib
|
|||
|
||||
| FRAGNATIC |
|
|||
|
..::Свирепый Кодер::.. ![]() ![]() Профиль Группа: Участник Сообщений: 901 Регистрация: 17.10.2004 Где: ICQ Репутация: 2 Всего: 11 |
|
|||
|
||||
| offline |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 474 Регистрация: 7.2.2005 Репутация: 7 Всего: 7 |
Также как без Delphi.
|
|||
|
||||
| FRAGNATIC |
|
|||
|
..::Свирепый Кодер::.. ![]() ![]() Профиль Группа: Участник Сообщений: 901 Регистрация: 17.10.2004 Где: ICQ Репутация: 2 Всего: 11 |
kirilllius
затем что в даной ситуации мне нужно именно так) задание такое=) |
|||
|
||||
| FRAGNATIC |
|
|||
|
..::Свирепый Кодер::.. ![]() ![]() Профиль Группа: Участник Сообщений: 901 Регистрация: 17.10.2004 Где: ICQ Репутация: 2 Всего: 11 |
короче я сделал так) Это сообщение отредактировал(а) FRAGNATIC - 1.11.2005, 16:17 |
|||
|
||||
| bas |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 446 Регистрация: 14.8.2002 Где: Молдова, Кишинев Репутация: 1 Всего: 2 |
id
parent- родитель inde-место в ветке count- количество узлов в ветке name Если parent 0 то главный узел Это сообщение отредактировал(а) bas - 1.11.2005, 16:55 |
|||
|
||||
| FRAGNATIC |
|
|||
|
..::Свирепый Кодер::.. ![]() ![]() Профиль Группа: Участник Сообщений: 901 Регистрация: 17.10.2004 Где: ICQ Репутация: 2 Всего: 11 |
bas
приму во внимание! спасибо но уже нету времени переделывать структуру БД тк мне придётся довольно много переписывать (( а время поджимает! |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |