Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.09.2012, 14:38
thxu2 thxu2 вне форума
Прохожий
 
Регистрация: 22.09.2012
Сообщения: 6
Репутация: 10
По умолчанию Хранение структуры дерева

Нужно организовать промежуточную ступень между accses и деревом,чтобы там хранить структуру бд. Как лучше это сделать??? Может как-то можно записывать структуру в reccord а потом по ней строить дерево????
Ответить с цитированием
  #2  
Старый 22.09.2012, 14:57
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от thxu2
Нужно организовать промежуточную ступень между accses и деревом,чтобы там хранить структуру бд. Как лучше это сделать??? Может как-то можно записывать структуру в reccord а потом по ней строить дерево????
Под деревом подразумевается TTreeView? Если так, то у узлов есть свойство TTreeNode.Data в котором можно хранить свои данные, например уникальное поле записи (ID) таблицы.
И ещё можешь посмотреть уже готовые реализации DBTreeView здесь.
Ответить с цитированием
  #3  
Старый 22.09.2012, 15:17
thxu2 thxu2 вне форума
Прохожий
 
Регистрация: 22.09.2012
Сообщения: 6
Репутация: 10
По умолчанию

Я знаю Как сделать дерево по бд .Нужно сделать чтобы структура была отдельно от дерева и хранилась где-то,заполняясь из бд при запуске проги,а потом по ней строилось дерево .
Ответить с цитированием
  #4  
Старый 22.09.2012, 15:33
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от thxu2
Я знаю Как сделать дерево по бд .Нужно сделать чтобы структура была отдельно от дерева и хранилась где-то,заполняясь из бд при запуске проги,а потом по ней строилось дерево .
Тогда делай на record'ах, что-то типа такого:
Код:
type
  PMyNode = ^TMyNode;
  TMyNode = record
    Parent: PMyNode;
    PrevSibling: PMyNode;
    NextSibling: PMyNode;
    FirstChild: PMyNode;
    LastChild: PMyNode;
    Data: ...
  end;
И при чтении из бд заполняй эту структуру вместо TTreeView.
Или же сделай с помощью классов - обычно с ними удобнее работать чем с record'ами.
Ответить с цитированием
  #5  
Старый 22.09.2012, 15:47
thxu2 thxu2 вне форума
Прохожий
 
Регистрация: 22.09.2012
Сообщения: 6
Репутация: 10
По умолчанию

А примерчика у тебя нет никакого??????
Ответить с цитированием
  #6  
Старый 22.09.2012, 16:41
thxu2 thxu2 вне форума
Прохожий
 
Регистрация: 22.09.2012
Сообщения: 6
Репутация: 10
По умолчанию

Хотя бы поподробнее как с record ом работать.Вот допустим я в него записал всё что нужно,как потом к этим записям обратиться?????
Ответить с цитированием
  #7  
Старый 23.09.2012, 15:36
Аватар для Lost_Fish
Lost_Fish Lost_Fish вне форума
Начинающий
 
Регистрация: 21.07.2011
Адрес: Новосибирск
Сообщения: 103
Версия Delphi: Delphi 7,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от thxu2
Я знаю Как сделать дерево по бд .Нужно сделать чтобы структура была отдельно от дерева и хранилась где-то,заполняясь из бд при запуске проги,а потом по ней строилось дерево .

если речь о бд то я такие структуры строю так таблица с деревом где есть ID,ParentID,NodeID где NodeID это ID из другой таблицы со всеми необходимыми данными узла, тогда с помощью простого запроса типа
select Tree.*, Nodes.* from Tree Left Join Nodes on Nodes.ID=Tree.NodeID
получаю все необходимые данные

отображение идёт через Query-->TDataSetDriverEh(EhLib)-->TMemTableEh(EhLib)-->TDataSource-->TDBGridEh(EhLib)

Эта связка дерево строит автоматом
__________________
Код сырец
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:24.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025