![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Асинхронность в ADO [D7, MS ACCESS]
Zelius © (2003-07-14 20:04:00)Хочу сделать поиск по таблице, причем так, что бы пользователь видел находимые записи по мере их нахождения и мог прервать процесс в любой момент. Для этого поставил ExecuteOptions := [ eoAsyncExecute, eoAsyncFetch], потом определил OnFetchProgress и OnFeatchComplete. Вопрос, могу ли я в OnFeatchProgress начать читать записи? Проверял, в этот момент Active = False;
Спасибо!
Zelius (2003-07-16 11:57:00) [1]
> sniknik © (15.07.03 15:36)
логично! :)
Спасибо!
sniknik (2003-07-15 15:36:00) [2]естественно, они стали не нужны, данные открываются на "сервере" а на клиента поступают по мере запроса. (Next, Last, ... передвигает позицию обновляет данные)
Zelius (2003-07-15 14:58:00) [3]
> sniknik © (15.07.03 12:14)
при уставовке CursorLocation = UseServer у меня перестали вызываться события OnFetchProgress и OnFetchComplete...
sniknik (2003-07-15 12:14:00) [4]какая "схема"? распайка платы в холодильнике полетела? сочуствую. :)
все должно работать. кроме гридов(рекордсет не поддерживает вукмарки)... ну они тубе вроде не нужны.
а если нужен грид добавляеш клиентский датасет с источником.
Zelius (2003-07-15 11:59:00) [5]
> sniknik © (15.07.03 10:18)
оставил серверный курсор - схема перестала работать! :)
sniknik (2003-07-15 10:18:00) [6]если добавляеш сам (TListView) то поставь просто серверный курсор. данные будут "докачиватся" по мере обращения.
только нужно продумать хорошо (обшее время с таким подходом будет гораздо больше чем сначала закачать потом обработать), нужно тестить конкретный случай.
Zelius (2003-07-15 09:51:00) [7]
> sniknik © (14.07.03 22:49)
может быть несколько тысяч! с учетом добавления результатов в список и отображение в TListView процесс идет достаточно долго и прерывать - нужная функция! Вот только я не уверен в правильности подхода к работе с асинхронными запросами....
sniknik (2003-07-14 22:49:00) [8]сколько записей предполагается найти? если пару сотен то получение пролетит, не заметиш. а выполнение все одно останется "за кадром".
смысл имеет (успееш среагировать и прервать) от нескольких тысяч записей. (170тыс принимается ~25-30сек, естественно зависит от машины/таблици/т.д.)