| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Большая таблица -> ADO -> Grid |
| Автор: RST8 18.2.2007, 21:11 |
| Имеем большую таблицу Microsoft Access, гдето на 50 000 записей. Подключаемся через ADO. Связываем это все со стандартным дбгридом и запускаем программу. Грид заполняется данными несколько минут. Вопрос: как это ускорить? |
| Автор: Savek 19.2.2007, 09:50 |
| Не грузить сразу все 50 000 записей (не использовать TTable)! Пользователю они не понадобятся (все и сразу). Используй запрос c условием отбора для отображения части записей. |
| Автор: RST8 11.3.2007, 19:13 |
| Наконец дошел ход до этой части программы. Так вот как бы сделать что бы навигация по полученной сетке выполнялась нормально. Т.е. как реализовать динамическую подгрузку данных? Кто как из такой ситуации выкручивался? |
| Автор: Savek 12.3.2007, 09:35 |
| Либо делать выборку по условию и подгружать только нужные записи в данный момент, либо использовать ClientDataSet, с параметром PacketRecords=видимое кол-во записей Можно комбинировать оба способа |
| Автор: kobra 12.3.2007, 10:27 |
| в TADOQuery есть ExecuteOptions |
| Автор: RST8 12.3.2007, 22:53 |
Где это искать?. Так нашел, но похоже с ADO это не работает. Непомогает. |
| Автор: kobra 13.3.2007, 08:54 |
| если вклучить eoAsyncFetch, то у юзера создоется впечетление что данние загрузилис, грид заполнен |
| Автор: ama_kid 13.3.2007, 12:55 | ||
Отказаться от тяжеловесного и не слишком умного грида... В итоге получится так (см. прикрепленный проект) |
| Автор: SergeBS 14.3.2007, 11:28 |
| RST8, Размер записи? Работа локально или по сети? Если по сети - ее скорость? При загрузке в гриде данные мельтешат? |
| Автор: RST8 14.3.2007, 18:30 | ||||
20 полей половина числовые половина текстовый на 100 знаков
локально
нет, их грид предварительно кэширует, если это отключить то все равно не мельтешат, появляются сразу. Но навигация все время тормозит жутко. |
| Автор: SergeBS 15.3.2007, 08:28 | ||||
RST8,
Т.е. где-то 60-80 Мб. Ну и что ты хочешь? В Word-е попробуй похожее по размерам открыть - тоже тормозить будет. Урезай до приемлемых размеров. Все равно человек столько сразу и не увидит и не поймет. Да и на экран даже 1 запись не уместится. |
| Автор: RST8 15.3.2007, 18:17 | ||
Это всего 14 Мб. Что я хочу? Хм... Наверное чтобы ее начало сразу появилось на экране а остаток догружался фоново. По крайней мере сам Access открывает ее мгновенно. |