Главная страница
    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.048 c
1-1174985012
Amateur
2007-03-27 12:43
2007.05.20
Преобразование TBlobStream в TStream


2-1177596120
I-New
2007-04-26 18:02
2007.05.20
как у знать сколько сколько Item ов в TlistBox


2-1177570495
PL
2007-04-26 10:54
2007.05.20
Не могу понять в чем проблема


2-1178083513
user gosha
2007-05-02 09:25
2007.05.20
Доступ к Web-сервису из Delphi


2-1176404888
ancot
2007-04-12 23:08
2007.05.20
запуск bat файла





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский