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

Вниз

Как быстро заполнить TreeView по данным ClientDataset   Найти похожие ветки 

 
gedevan   (2016-02-27 06:59) [0]

В ClientDataSet таблица структуры Parent,Name,Index

ну и соответственно в эту таблицу забито дерево. В этом дереве присутствует корневой элемент, который имеет всегда одинаковое имя. И вот я заполнял TreeView  создавая в нем сначала этот корневой элемент, а потом делая фильтр по датасету по этому имени. И получал список ему подчиненных узлов и т.д.

ClientDataSet1.Filtered := false;
ClientDataSet1.filter := "Parent = """ + ParentNode + """";
ClientDataSet1.Filtered := true;


И в итоге мы пришли к тому, что 500 элементов заполняются 8 секунд, что как бы меня не устроило. Также я выяснил, что самое медленное место это как раз вот этот код.

Тогда  я решил пойти другим путем, отсортировав по полю Index дата сет и просто прямым циклом делал по нему перебор. А в дереве искал среди добавленных уже узлов родителя очередного элемента и прицеплял к нему новый. Я надеялся, что родительские элементы добавляются в таблицу раньше чем подчиненные и поэтому если идти по порядку по полю Index, то не получится так, что прицеплять элемент не к чему, т.к. родитель в дерево еще не добавлен. Зря я на это надеялся. Особенно потому что в процессе работы, подчиненный элемент могут перепривязать к другому родителю. Хотя этим методом заполнение 500 записей заняло 1 секунду. Но несколько записей просто никуда не привязались...

Что же делать..

Единственное, что мне приходит в голову, это перенумеровать поле Index как то. А как его перенумеровать в голову мне не приходит.


 
gedevan   (2016-02-27 08:03) [1]

ClientDataSet1 локальный, ни к чему не подключенный.



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

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

Наверх





Память: 0.44 MB
Время: 0.001 c
2-1456545588
gedevan
2016-02-27 06:59
2018.02.25
Как быстро заполнить TreeView по данным ClientDataset


15-1470413637
andrd
2016-08-05 19:13
2018.02.25
Какую версию Embarcadero RAD Studio посоветуете?


2-1456486666
ford
2016-02-26 14:37
2018.02.25
TWebBrowser - Control has no parent window


1-1356093530
harisma
2012-12-21 16:38
2018.02.25
QuickReport: TQRband


2-1456497894
Dmk
2016-02-26 17:44
2018.02.25
Вопрос знатокам асм





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