Главная страница
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.077 c
1-1174557288
Makhanev Alexander
2007-03-22 12:54
2007.05.20
как получить Username....


2-1177786122
ppcumax
2007-04-28 22:48
2007.05.20
Как поменять кодировку в RichEdit?


4-1166364120
klimov
2006-12-17 17:02
2007.05.20
Как в сервисе подождать пока чужое приложение не будет запущено?


4-1166124336
Shico
2006-12-14 22:25
2007.05.20
работа с выводами com порта


9-1150186032
VolanD666
2006-06-13 12:07
2007.05.20
Текстурные координаты