Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];

Вниз

Как лучше считать дерево из таблицы БД в TreeView?   Найти похожие ветки 

 
alll_23   (2007-10-24 16:41) [0]

Здравствуйте это снова я со своим вопрос по TreeVew недавно Сергей М. дал мне ссылочку на вот этот документ

Как лучше считать дерево из таблицы БД в TreeView?

Говорят есть удобный компонент dbtreeview,
но я не смог достать нормально работающий и
потом их так много в разных библиотеках : polaris, rxlib, ralib и т.п.
Где лучше. Взял вроде из polaris, но там только pas файл и он просит
модуль Тooledit.dcu , который я найти не смог.
--------------
Можно не искать компоненты а самому считать дерево из таблицы вида :
Поля : id уникальный индекс, firstid ссылка на родителя, name название.
Затем пишешь процедуру :

procedure readtree( intrn : integer; treenodetemp: ttreenode; ttree : ttreeview );
var
qenode: tquery;
bflag: boolean;
begin
qenode := tquery.create( nil );
qenode.databasename := -- как там у тебя
qenode.close;
qenode.sql.clear;
bflag := false;
if intrn = -1 then
begin
qenode.sql.add("select id, firstid, name");
qenode.sql.add("from " work.db" ");
qenode.open;
qenode.first;
intrn := qenode.fieldbyname("id").asinteger;
qenode.close;
qenode.sql.clear;
bflag := true;
end;
qenode.sql.add("select id, firstid, name");
qenode.sql.add("from " work.db" where firstid = "+inttostr(intrn));
qenode.open;
qenode.first;
while not qenode.eof do
begin
if bflag = true then
readtree(qenode.fieldbyname("id").asinteger,
ttree.items.addobject(nil, inttostr(qenode.fieldbyname("id").asinteger)+":"+
inttostr(qenode.fieldbyname("firstid").asinteger)+":"+
qenode.fieldbyname("name").asstring, nil),
ttree)
else
readtree(qenode.fieldbyname("id").asinteger,
ttree.items.addchildobject(treenodetemp,
inttostr(qenode.fieldbyname("id").asinteger)+":"+
inttostr(qenode.fieldbyname("firstid").asinteger)+":"+
qenode.fieldbyname("name").asstring, nil),
ttree); //рекурсия
qenode.next;
end;
qenode.close;
qenode.destroy;
end;

Рекурсивно вызываешь у себя при формировании дерева и все
Вызов следующий :
readtree( -1, nil, {имя объекта treeview} );

Всё сделал так же только помял TQuery  на TIBQuery только я не создаю TIBQuery а он у меня заранее лежит на форме. И не работает у меня ничиге, помогите разобраться приз!


 
Сергей М. ©   (2007-10-24 16:47) [1]


> alll_23   (24.10.07 16:41)


И что толку оттого что ты клянчил "примеры" ?

Ну вот он, пример вожделенный .. И смотришь ты на него как баран на новые ворота)

Примеры даются не для тестирования на "работает - не работает", а для самостоятельного изучения логики !

Ну да ладно... Что говорит отладчик по этому поводу ?


 
alll_23   (2007-10-24 16:50) [2]

Ничего не говорит, неправильно строится дерево


 
Сергей М. ©   (2007-10-24 16:52) [3]

Ну так пройди пошагово по всей этой процедуре и контролируй, что происходит при выполнении каждого оператора !



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

Форум: "Начинающим";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.036 c
6-1173849435
paradox01
2007-03-14 08:17
2007.11.18
Сервер-клиент прием-передача


15-1192124189
Menel
2007-10-11 21:36
2007.11.18
Требуется совет по реализации


2-1193313998
DimOk
2007-10-25 16:06
2007.11.18
Удаление файла


15-1192364384
i
2007-10-14 16:19
2007.11.18
IE в висте


15-1192127239
Ping
2007-10-11 22:27
2007.11.18
Turbo Delphi 2007 Pro Win32





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский