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();
}
Отображение БД в виде дерева
Есть БД (SQL Server) сотоящая из трёх таблиц, как отобразить её в компоненте tree view? Таблицы связаны 1:М, первая табл. - это корневая ветка (первый уровень), вторая табл.-это второй уровень и третья табл.-это третий уровень.
ИМХО, только руками. Перебираешь все элементы первой таблицы, добавляешь их по одному, для каждого добываешь(руками или запросом) соответствующие элементы второй, и для каждого из вторых - третьи.
Цитата: wanja
ИМХО, только руками. Перебираешь все элементы первой таблицы, добавляешь их по одному, для каждого добываешь(руками или запросом) соответствующие элементы второй, и для каждого из вторых - третьи.
По-моему на этом сайте в разделе статьи была как раз статья о том, как строить дерево TTreeView из БД. Если не тут, то в инете она точно есть, я пару раз натыкался (случайно), не помню где именно. Пояндекси, погугли, должна быть прям на эту тему.
Это понятно, у меня не получается сформировать второй уровень (если будет второй то будет и третий), хотелось бы поподробнее узнать как к корневым веткам прикрутить ветки второго уровня. Первый уровень строю из первой таблицы всё получается а построить второй ур. из второй таблицы (с учётом того что вторая таблица зависит от первой) не получается.
построил двухуровневое дерево, щас буду достраивать третий уровень, СПАСИБО за помощь