Главная страница
    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.46 MB
Время: 0.039 c
15-1192238779
Dmitry S
2007-10-13 05:26
2007.11.18
В чем разница между Памятью и Виртю. памятью...


2-1193683190
sdaf
2007-10-29 21:39
2007.11.18
imageList


15-1189799101
matt
2007-09-14 23:45
2007.11.18
Русская ОС появится во всех школах


2-1193311457
Новичек
2007-10-25 15:24
2007.11.18
Telnet через socket.


2-1193666916
@!!ex
2007-10-29 17:08
2007.11.18
Как ловить AV?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский