![]() |
|
|
![]()
|
|
| RST8 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 8.12.2004 Репутация: нет Всего: 1 |
Имеем большую таблицу Microsoft Access, гдето на 50 000 записей. Подключаемся через ADO. Связываем это все со стандартным дбгридом и запускаем программу. Грид заполняется данными несколько минут.
Вопрос: как это ускорить? --------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной! |
|||
|
||||
| Savek |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 355 Регистрация: 10.4.2006 Где: Воронеж Репутация: 7 Всего: 7 |
Не грузить сразу все 50 000 записей (не использовать TTable)! Пользователю они не понадобятся (все и сразу). Используй запрос c условием отбора для отображения части записей.
|
|||
|
||||
| RST8 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 8.12.2004 Репутация: нет Всего: 1 |
Наконец дошел ход до этой части программы. Так вот как бы сделать что бы навигация по полученной сетке выполнялась нормально. Т.е. как реализовать динамическую подгрузку данных? Кто как из такой ситуации выкручивался?
--------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной! |
|||
|
||||
| Savek |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 355 Регистрация: 10.4.2006 Где: Воронеж Репутация: 7 Всего: 7 |
Либо делать выборку по условию и подгружать только нужные записи в данный момент, либо использовать ClientDataSet, с параметром PacketRecords=видимое кол-во записей
Можно комбинировать оба способа Это сообщение отредактировал(а) Savek - 12.3.2007, 09:38 |
|||
|
||||
| kobra |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 730 Регистрация: 15.6.2005 Где: Грузия, Тбилиси Репутация: 1 Всего: 9 |
в TADOQuery есть ExecuteOptions
|
|||
|
||||
| RST8 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 8.12.2004 Репутация: нет Всего: 1 |
Где это искать?. Так нашел, но похоже с ADO это не работает. Непомогает. Это сообщение отредактировал(а) RST8 - 12.3.2007, 22:54 --------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной! |
|||
|
||||
| kobra |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 730 Регистрация: 15.6.2005 Где: Грузия, Тбилиси Репутация: 1 Всего: 9 |
||||
|
||||
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: нет Всего: 95 |
Отказаться от тяжеловесного и не слишком умного грида... В итоге получится так (см. прикрепленный проект) Это сообщение отредактировал(а) ama_kid - 13.3.2007, 13:11 Присоединённый файл ( Кол-во скачиваний: 18 )
MyTestDB.rar 99,63 Kb-------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
| RST8 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 8.12.2004 Репутация: нет Всего: 1 |
Спасибо за внимание к моему вопросу
Может конечно я что то не так делаю, но нормального результата получить немогу. У самого грида который я пробую есть параметр буфиризировать данные. Так вот пока он их все не получет он их не отображает и программ типа висит. Если же эту опцию отключить, то независимо от eoAsyncFetch от отображает их сразу, но при попытке навигации по нему жутко тормозит все время. У меня создалось впечатление что это не тот проект ... Так что пока не нашел ничего лучше вывода окошка со словом "подождите немного" Это сообщение отредактировал(а) RST8 - 13.3.2007, 20:53 --------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной! |
|||
|
||||
| SergeBS |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
RST8,
Размер записи? Работа локально или по сети? Если по сети - ее скорость? При загрузке в гриде данные мельтешат? |
|||
|
||||
| RST8 |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 8.12.2004 Репутация: нет Всего: 1 |
20 полей половина числовые половина текстовый на 100 знаков
локально
нет, их грид предварительно кэширует, если это отключить то все равно не мельтешат, появляются сразу. Но навигация все время тормозит жутко. --------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной! |
||||
|
|||||
| SergeBS |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
RST8,
Т.е. где-то 60-80 Мб. Ну и что ты хочешь? В Word-е попробуй похожее по размерам открыть - тоже тормозить будет. Урезай до приемлемых размеров. Все равно человек столько сразу и не увидит и не поймет. Да и на экран даже 1 запись не уместится. |
||||
|
|||||
| RST8 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 8.12.2004 Репутация: нет Всего: 1 |
Это всего 14 Мб. Что я хочу? Хм... Наверное чтобы ее начало сразу появилось на экране а остаток догружался фоново. По крайней мере сам Access открывает ее мгновенно. --------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной! |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |