Для работающих с БД
code_30511.txt
Пришлось работать с таблицей на 800 000 строк.
(Обычная загрузка в MTStrTbl - более 4-х минут.)
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
|
|||
карма: 25 |
| ||
файлы: 1 | code_30511.txt [5.3KB] [508] |
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 6 раз(а), последний 2021-06-21 07:13:34 |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
143.gprs.mts.ru писал(а): Ошибка файла |
|||
карма: 25 |
|
Ответов: 704
Рейтинг: 44
|
|||
Tad писал(а): Tad |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
По желанию - или правая, или нижняя.
|
|||
карма: 25 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
Tad писал(а): Для работающих с БДИ чем это отличается от MST_Virtual |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco писал(а): И чем это отличается от MST_Virtual ?А Вы попробуйте (с) Отличается тем, что ты работаешь с MTStrTbl (в которую нужно загрузить, в моём случае, все 800 тысяч строк, а это 3-4 минуты ), а предлагаемый блок работает с таблицей БД мгновенно, т.к. загружает только то, что влезает в окно (обычно от 20 до 50 строк).
И грех не воспользоваться точкой MTStrTbl.PerPage |
|||
карма: 25 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
Tad писал(а): Отличается тем, что ты работаешь с MTStrTbl (в которую нужно загрузить, в моём случае, все 800 тысяч строк, а это 3-4 минуты ), а предлагаемый блок работает с таблицей БД мгновенно, т.к. загружает только то, что влезает в окно (обычно от 20 до 50 строк)Гы. А ты хоть читал, что такое MST_Virtual и смотрел пример Получилось из серии -- не читал, но осуждаю... (с) Для особо умных MST_Virtual писал(а): Клиентский модуль MTStrTbl для работы с таблицой в виртуальном режимеСама таблица начинает работать с параметром KOL писал(а): lvoOwnerData- список является виртуальным, т.е. изначально не хранит сам никакие данные, а в обработчике события OnLVData получает их пользовательского кода;... OnLVData и OnLVDataW - особое событие для виртуального списка (с опцией lvoOwnerData). Обработчик этого события вызывается каждый раз, когда при рисовании окна списка системе требуется получить текст и изображения для отображения (виртуальные списки тем и отличаются от обычных, что текст и изображения программа хранит у себя, и в результате появляется возможность быстро работать с огромными списками данных); |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco, простейшую схемку можно ? А я подставлю свою БД.
Не надо, нашёл в Wiki |
|||
карма: 25 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
Tad писал(а): Не надо, нашёл в WikiЯ ее только что немного подправил, найдя там лишний компонент Я заменил вот это
|
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Результаты теста таблицы на 803004 строк на схеме из Wiki:
Между запуском схемы и появлением формы на экране 2мин.35сек. Кстати, почему у тебя после открытия БД сразу идет Select * From и вызывает 803004 раз Select Max(id) From и Math, который тоже 803004 раз отнимает 1 от Max(id). Количество и имена колонок можно получить проще : PRAGMA table_info(table-name); А мой Tad писал(а): предлагаемый блок работает с таблицей БД мгновенно------------ Дoбавленo в 02.02: Кстати, о птичках. В этой БД, что у меня нет ID в таблицах. |
|||
карма: 25 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
Tad писал(а): Кстати, почему у тебя после открытия БД сразу идет Select * From и вызывает 803004 раз Select Max(id) From и Math, который тоже 803004 раз отнимает 1 от Max(id)А это что бы оставалось место подумать, как улучшить. Писалось на скорую руку, давно, и не особеннов вдаваясь в подробности. Надо улучшить, я не спорю. Но возможность не грузить в таблицу всех данных, в ней все же есть. Tad, а ты можешь улучшить пример с учетом предложений, я его добавлю тогда в справку. |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco, извини, но я в 02:23 по вашему - уже спал .
Сегодня дома, поработаю над примером. |
|||
карма: 25 |
|
13