![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 06.05.2010
Сообщений: 8
|
![]()
Доброго времени суток всем.
В процессе написания программы для работы с базой данных возникла такая проблема. Имеется таблица со следующими полями и данными: ID ParentID Name 1 0 Мониторы 2 1 Samsug 3 0 Процессоры 4 3 Athlon 100 mhz 5 0 Сетевые платы 6 5 Ethernet xxxx 7 5 Etherne 1xxx1 В программе эта таблица представлена в виде дерева - иерархии типа так: -Компьютер - Мониторы - Samsung - Процессоры - Athlon 100 mhz - Сетевые платы - Ethernet xxxx - Ethernet 1xxx1 ----------------------- Необходимо сделать таблицу такого вида N Тип устройства Модель устройства 1 Мониторы Samsung 2 Процессоры Athlon 100 mhz 3 Сетевые платы Ethernet xxxx Ethernet 1xxx1 4 ... ... Вот и не пойму как можно сформировать такой список из той таблицы. Думаю нужно сравнивать ParentID с ID и подставлять значение Name в нужную строку и в нужную колонку. т.е. если ParentID = 5 то значение Name нужно поставить напротив значения у которого ID = 5. но вот как это реализовать в коде программы даже не представлю... Все работы с базой данных mdb произвожу с использованием ADO. Может кто знает или сталкивался с таким вопросом подскажите как это можно реализовать. может есть примерные исходники для решения этой задачи.. Буду очень признателен. а то сроки горят... Заранее благодарен. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 05.02.2009
Сообщений: 324
|
![]()
это первый запрос, назовём zp1
Код:
Код:
Тяжело быть бестолковым.....
![]() |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,089
|
![]()
Странная структура БД для данной задачи. Зачем тут вообще дерево делать? Я бы сделал 2 таблицы:
1) Тип устройства (ИД, Наименование) 2) Устройство (ИД, Тип, Наименование) Запрос в данном случае будет что-то вроде: Код:
Если нужна будет возможность более глубокой иерархии типа: Код:
В общем, если возможно, лучше перепроектировать БД нормально под предметную область, т.к. сейчас данный момент реализован нехорошо. |
![]() |
![]() |
![]() |
#4 | |
Регистрация: 06.05.2010
Сообщений: 8
|
![]() Цитата:
чего делать |
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,089
|
![]()
Так пойдёт?
Код:
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 06.05.2010
Сообщений: 8
|
![]()
пойдёт. а куда данные записываются? и как их отобразить в dbGrid
Наверное тупой вопрос, просто я впервые работаю с базами данных Последний раз редактировалось Wikly; 07.05.2010 в 15:11. |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,089
|
![]()
Никуда они не записываются. Это простой запрос на выборку. Кидаем в делфях на форму ADOQuery (или какой уж там компонент для этого предназначен), прописываем в CommandText этот запрос и привязываем к DBGrid'y. Инфы в сети навалом. Срисуйте какую-нибудь книжку с торрента по делфям и смотрите там примеры.
|
![]() |
![]() |
![]() |
#8 | |
Регистрация: 06.05.2010
Сообщений: 8
|
![]() Цитата:
А то я пол инета обшарил нашел только такой способ: Код:
Я и сам думаю что можно сделать интереснее. но вот как это сделать не представлю.. Может имеются подобные исходники??? Последний раз редактировалось Wikly; 07.05.2010 в 23:02. |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Древовидная структура таблицы в гриде | AK BULLETS | Общие вопросы Delphi | 3 | 21.03.2010 02:51 |
Структура Базы Данных | jeka5555 | PHP | 12 | 30.03.2009 07:46 |
Структура таблицы | Proof | БД в Delphi | 8 | 29.12.2008 20:24 |
структура таблицы базы данных с именем WORKER | Vollmond36 | Помощь студентам | 1 | 01.12.2008 22:20 |