Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TreeView и базы данных [D7, MSSQL]


Scald ©   (2003-09-24 08:42:00) 

Добрый день! Помогите новичку разобраться с построением дерева баз данных в TreeView. Имеется таблица dict_description (id, tab_description, nm_description, comments) и туча таблиц от Klass01 до Klass150 (id, parent, nm, comments).Нужно представить их в виде дерева. Если можно, то приведите код, теоритически я принцип построения понимаю, а вот с кодом пока трудности. Заранее спасибо!


stud   (2003-09-26 14:58:00) [1]

ну можно использовать пакет от Developer Express -
ExpressQuantumGrid Suite
официальную демку можно скачать на ихнем сайте а неофициальную .....


Scald   (2003-09-26 14:55:00) [2]

Если можете, то подскажите где их можно скачать? Спасибо.


stud   (2003-09-25 09:26:00) [3]

кроме того есть же готовые компоненты для отображения древовидных структур..


ЮЮ   (2003-09-25 03:22:00) [4]

adqKl_05.ParamByName("Parent").AsInteger:=id;
!!!!Ошибка Undeclared identifier: "ParamByName"

если adqKl_05 типа TADOQuery, то не трудно (с помошью F1) убедиться, что у него действительно нет св-ва/метода ParamByName( о чём и сообщается в ошибке), но есть св-во Parameters, а вот у него уже есть метод ParamByName

adqKl_05. Parameters.ParamByName("Parent").AsInteger := id;


dtm   (2003-09-24 11:37:00) [5]

Так я не понимаю - в чём проблема? В написании кода для построения дерева из N-го количества связанных таблиц?

Какое у тебя количество записей в таблицах? Если очень большое, то лучше, наверное, сгружать в TreeView не все, а только те, что видны должны быть.

Если не много, то сгружай все - сначала и первой таблицы считываешь данные и добавляешь в ТриВью, потом из второй таблицы достаёшь данные и рассовываешь "дитями" к тем узлам, что уже есть. Для этого надо хранить в каждом узле ID записи или что-то вроде того.


Плохиш_   (2003-09-24 10:38:00) [6]

>Scald (24.09.03 10:29) [5]

И что?
F1 нажимать не пробовал?


Scald   (2003-09-24 10:29:00) [7]

procedure TForm1.TreeView1Expanded(Sender: TObject; Node: TTreeNode);
var id, i:integer;
TreeNode:TTreeNode;

begin
if Node=nil then id:=0
else id:=Integer(Node.Data);
adqKl_05.Close;
adqKl_05.ParamByName("Parent").AsInteger:=id;!!!!Ошибка
Undeclared identifier: "ParamByName"

adqKl_05.Open;
TreeView1.Items.BeginUpdate;
for i:=1 to adqKl_05.RecordCount do
begin
TreeNode:=TreeView1.Items.AddChildObject(Node, adqKl_05.FieldByName("nm").AsString, Pointer(adqKl_05.FieldByName("id").AsInteger));
TreeNode.ImageIndex:=1;
TreeNode.SelectedIndex:=2;
TreeView1.Items.AddChildObject(TreeNode, "", nil);
adqKl_05.Next;
end;
TreeView1.Items.EndUpdate;
end;


ЮЮ   (2003-09-24 09:39:00) [8]

>Если можно, то приведите код, теоритически я принцип построения понимаю, а вот с кодом пока трудности

Почему всем кажется, что писать код, не имея структур, просто?
Попытайся свои теоритически принципы превращать в код, а сталкнувшись с конкретными проблемами, добро пожаловать в Форум!!!


Scald   (2003-09-24 09:30:00) [9]

Не моя вина в том, таблицы уже появились за долго до меня, и начальству требуется их представить в таком виде, sorry!


ЮЮ   (2003-09-24 08:54:00) [10]

Сначала создали тучу таблиц, не желая держать однотипные данные в одной таблице, а теперь возникло желание слить в кучу в одном дереве? Надо быть последовательным! :-)


Armaniak   (2003-09-24 08:52:00) [11]

Попробуй глянь сюда
http://www.delphikingdom.com/helloworld/dbtreeview.htm


Наверх

Титульная страница Поиск, карта сайта Написать письмо