Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.16;
Скачать: CL | DM;

Вниз

TreeView и базы данных   Найти похожие ветки 

 
Scald   (2003-09-24 08:42) [0]

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


 
Armaniak ©   (2003-09-24 08:52) [1]

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


 
ЮЮ ©   (2003-09-24 08:54) [2]

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


 
Scald   (2003-09-24 09:30) [3]

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


 
ЮЮ ©   (2003-09-24 09:39) [4]

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

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


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

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 10:38) [6]

>Scald (24.09.03 10:29) [5]

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


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

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

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

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


 
ЮЮ ©   (2003-09-25 03:22) [8]

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

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

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


 
stud ©   (2003-09-25 09:26) [9]

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


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

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


 
stud ©   (2003-09-26 14:58) [11]

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



Страницы: 1 вся ветка

Текущий архив: 2003.10.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
1-51287
Peter
2003-10-06 15:56
2003.10.16
Строки


6-51366
SergP
2003-08-20 01:31
2003.10.16
Вопрос об OnDisconnect в Tclient/serversocket


14-51398
VM
2003-09-29 16:48
2003.10.16
Печать OLE объекта


3-51122
KIR
2003-09-24 18:39
2003.10.16
Страшно тормозит запрос к базе IB


9-51055
_MYSTERYO_
2003-04-10 13:34
2003.10.16
Сделал программку для работы со спрайтами. Оцените плз