Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];

Вниз

Выполнение 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.047 c
2-1178031459
maksimus
2007-05-01 18:57
2007.05.20
ftp


4-1166299301
klimov
2006-12-16 23:01
2007.05.20
Достать текс из класса типа Afx:400000:4048:10013:0:0


3-1172611235
Master_
2007-02-28 00:20
2007.05.20
Ttable и проблемма транзакций


3-1173074542
merko$
2007-03-05 09:02
2007.05.20
экспорт из IBQuery в Excel


1-1174400113
San ciz
2007-03-20 17:15
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский