![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как ускорить поиск? [D6, IB6.x, FireBird]
Соловьев © (2003-03-06 13:03:00)Мастера, кто может поделитесь опытом.
Используется FB(IBDatabase->IBTransaction->IBDataset). Пользователь хочет сразу видеть список из доступных ему данных(около 2000 записей может чуть больше). почему? Те кто работал с женщинами поймет меня. Сделал ему(пользователю) одно поле(DBGrid) где он лазит и скролирует(радуются) как дети... А остальные поля подгружаются при переходе к записи(событие AfteScroll)
Так вот нужно делать поиск по этим данным, которые в DBGrid. Делаю поиск через Locate. Тормозит жуть как. Индекс тоже есть по этому полю. Как ускорить?
Соловьев (2003-03-06 14:00:00) [1]
> zacho © (06.03.03 13:35)
> Жук © (06.03.03 13:42)
> Соловьев © (06.03.03 13:38
После отключения AfteScroll просто таки летает :)))) Что-то стормозил. :))))
Соловьев (2003-03-06 13:46:00) [2]
> Всё равно пойдёте на поводу у юзера ?
Мы для них же создаем программы и делаем так как они хотят или илюзию, того что хотят, так вот илюзию у меня не получается...
Жук (2003-03-06 13:42:00) [3]А если вначале в гриде будет выдаваться 20000 строк ? Всё равно пойдёте на поводу у юзера ?
В AfterScroll поставить Timer1.Enabled:=true, а в onTimer открывать то, что надо.
Соловьев (2003-03-06 13:38:00) [4]Юзера надо переделать :)))
Про AfteScroll я как раз тоже вот-вот думал...
zacho (2003-03-06 13:35:00) [5]Индекс не поможет. На клиенте-то его нет.
А ускорить например так: перед Locate отключать обработку AfterScroll, после-подключать. Или все-таки переделать программу так, чтобы выбиралось меньше записей :-)
Соловьев (2003-03-06 13:20:00) [6]Удалено модератором
Примечание: Создание пустых сообщений