Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.20;
Скачать: CL | DM;

Вниз

Выполнение ADOQuery и продолжение работы приложения.   Найти похожие ветки 

 
Сергей Ю   (2007-04-27 14:31) [0]

Делается sql-запрос к базе. Минут 5 делается, надо чтоб в эти 5 минут программа продолжала работать а не ждала пока придет ответ. Как можно сделать?


 
iXT ©   (2007-04-27 14:57) [1]

А чего она должна делать? Что означает
> программа продолжала работать а не ждала пока придет ответ


 
zdm ©   (2007-04-27 15:06) [2]

не вдаваясь в подробности не понятной логики... запустить его в отдельном потоке.


 
Сергей Ю.   (2007-04-27 17:14) [3]

Ну подробности и правда не нужны :)
Например чтоб пользователь мог кнопки пока потыкать :)


 
stone ©   (2007-04-27 17:17) [4]


> Сергей Ю.   (27.04.07 17:14) [3]

У АДО-компонентов есть асинхронный режим работы. Вот его и используй.


 
Сергей Ю.   (2007-04-27 19:33) [5]

А асинхронный режим надо включить на ADOConnection и/или ADOQuery???


 
stone ©   (2007-04-27 19:40) [6]

в ADOQuery


 
Сергей Ю.   (2007-04-27 20:48) [7]

Я так понимаю что это ExecuteOption. А что выставить? Тут:
AsyncExecute
AsyncFetch
AsyncFetchNonBlocking
ExecuteNoRecords

И я так понимаю что если сейчас процедура выглядит как:
 Query1.SQL.Add("...");
 Query1.Open;
 a:=Query1.Fields[0].AsInteger;
То тут она переменную "a" незаполнит, а нужно будет отлавливать OnFetchCompite и уже там делать: a:=Query1.Fields[0].AsInteger;
Так?


 
MsGuns ©   (2007-04-27 22:00) [8]

1. У асинхроноого ражима есть некоторые минусы.
2. Для полного избежания "тормозов" просто Async не всегда помогает - TThread надежней ;)


 
Сергей Ю.   (2007-04-28 10:09) [9]

И все таки что выбрать и как работать потом?


 
stone ©   (2007-04-28 10:17) [10]


> Сергей Ю.   (28.04.07 10:09) [9]
> И все таки что выбрать и как работать потом?


> AsyncFetch
> AsyncFetchNonBlocking

в зависимости от условий.

> a:=Query1.Fields[0].AsInteger;
> То тут она переменную "a" незаполнит

Если еще ни одна запись на клиента не пришла, то конечно не заполнит. Да и какой смысл заполнять переменную случайным значением?


 
Сергей Ю.   (2007-04-28 10:28) [11]


> > AsyncFetch
> > AsyncFetchNonBlocking

А какая между ними разница?


> нужно будет отлавливать OnFetchCompite и уже там делать:
>  a:=Query1.Fields[0].AsInteger

Т.е. всетаки так надо делать?


 
stone ©   (2007-04-28 11:40) [12]


> > > AsyncFetch
> > > AsyncFetchNonBlocking
>
> А какая между ними разница?

F1

> > нужно будет отлавливать OnFetchCompite и уже там делать:
>
> >  a:=Query1.Fields[0].AsInteger
>
> Т.е. всетаки так надо делать?

угу



Страницы: 1 вся ветка

Текущий архив: 2007.05.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.051 c
15-1176796832
TUser
2007-04-17 12:00
2007.05.20
Кому тут нуотбук подешевке?


2-1178251152
RomanLN
2007-05-04 07:59
2007.05.20
как создать таблицу через SQL ?


2-1177742275
DelphiLexx
2007-04-28 10:37
2007.05.20
Запретить Delphi удалять мои дерективы в dpr-файле


15-1177139464
SerJaNT
2007-04-21 11:11
2007.05.20
PHP: Call to a member function ...


15-1176974376
Petr V.Abramov
2007-04-19 13:19
2007.05.20
Полет армейской мысли