Главная страница
    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.47 MB
Время: 0.036 c
8-1157958808
aKirill.INFO
2006-09-11 11:13
2007.05.20
Как работает функция GetDIBits


15-1177351141
Kolan
2007-04-23 21:59
2007.05.20
Предстаит разработать небольшую экспертную систему,&#133


3-1172840031
AlexLines
2007-03-02 15:53
2007.05.20
Поиск и скорость поиска


2-1178102380
RomanLN
2007-05-02 14:39
2007.05.20
в чём ошибка


9-1149824458
tButton
2006-06-09 07:40
2007.05.20
откопал =)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский