Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Отображение БД в виде дерева

29K
06 октября 2008 года
asupdemon
29 / / 03.10.2008
Есть БД (SQL Server) сотоящая из трёх таблиц, как отобразить её в компоненте tree view? Таблицы связаны 1:М, первая табл. - это корневая ветка (первый уровень), вторая табл.-это второй уровень и третья табл.-это третий уровень.
247
06 октября 2008 года
wanja
1.2K / / 03.02.2003
ИМХО, только руками. Перебираешь все элементы первой таблицы, добавляешь их по одному, для каждого добываешь(руками или запросом) соответствующие элементы второй, и для каждого из вторых - третьи.
1.8K
06 октября 2008 года
Arkady
153 / / 18.12.2007
Цитата: wanja
ИМХО, только руками. Перебираешь все элементы первой таблицы, добавляешь их по одному, для каждого добываешь(руками или запросом) соответствующие элементы второй, и для каждого из вторых - третьи.



По-моему на этом сайте в разделе статьи была как раз статья о том, как строить дерево TTreeView из БД. Если не тут, то в инете она точно есть, я пару раз натыкался (случайно), не помню где именно. Пояндекси, погугли, должна быть прям на эту тему.

29K
06 октября 2008 года
asupdemon
29 / / 03.10.2008
Это понятно, у меня не получается сформировать второй уровень (если будет второй то будет и третий), хотелось бы поподробнее узнать как к корневым веткам прикрутить ветки второго уровня. Первый уровень строю из первой таблицы всё получается а построить второй ур. из второй таблицы (с учётом того что вторая таблица зависит от первой) не получается.
11
06 октября 2008 года
oxotnik333
2.9K / / 03.08.2007
Код:
ADOQuery1->Active = true;
while (!ADOQuery1->Eof)
{
    TTreeNode *RootNode = TreeView1->Items->Add(NULL, ADOQuery1->FieldByName("Name")->AsString);
    ADOQuery2->Active = false;
    ADOQuery2->Params->ParamByName("Index")->Value = ADOQuery1->FieldByName("ID")->Integer;
    ADOQuery2->Active = true;
    while (!ADOQuery2->Eof)
    {
          TTreeNode *NodeLevel1 = TreeView1->Items->AddChild(RootNode , ADOQuery2->FieldByName("Name")->AsString);
// здесь еще один вложенный цикл для 3-ей таблицы
         ADOQuery2->Next();
    }
    ADOQuery1->Next();
}
29K
06 октября 2008 года
asupdemon
29 / / 03.10.2008
построил двухуровневое дерево, щас буду достраивать третий уровень, СПАСИБО за помощь
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог