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

Вниз

Запуск запроса в другой нити   Найти похожие ветки 

 
voland   (2004-01-26 15:59) [0]

Возникла необходимость запускать запрос в другой нити никто не поможет ???


 
Digitman ©   (2004-01-26 16:11) [1]

в любой нити это делается одинаково


 
voland   (2004-01-26 16:13) [2]

procedure TQueryThread.Execute;
begin
Fdataset.DisableControls;
Fdataset.Close;
Fdataset.Open;
Fdataset.EnableControls;
end;
Вот так я его запускаю но он почему то все равно запускается в основной нити и не дает мне ничего делать
мне он нужен в фоновом режиме


 
Polevi ©   (2004-01-26 20:24) [3]

объект должен быть создан в том же потоке где используется
и не забудь CoInitialize


 
jack128 ©   (2004-01-26 20:31) [4]


> и не забудь CoInitialize
А зачем?


 
jack128 ©   (2004-01-26 20:35) [5]


> А зачем?
если работают через ado, то дошло :-)


 
y-soft ©   (2004-01-26 21:38) [6]

voland (26.01.04 15:59)

http://delphiplus.nagano.ru/articles/delphi/multithread_db_access/index.html


 
KSergey ©   (2004-01-27 09:04) [7]

Если использовать ADO-компоненты, но в них есть готовая реализация выполенения запросов в отдельных потоках - см. ExecuteOptions: eoAsync...


 
Polevi ©   (2004-01-27 10:00) [8]

>KSergey © (27.01.04 09:04) [7]
асинхронное выполнение и "в отдельных потоках" абсолютно разные вещи


 
sniknik ©   (2004-01-27 10:47) [9]

Polevi © (27.01.04 10:00) [8]
почему абсолютно? похоже, только за тебя ADO заботится о создании отдельного потока и синхронизации с основным.

voland (26.01.04 16:13) [2]
судя по
> Fdataset.DisableControls;
раз это понадобилось (отключать контролы), то подозреваю есть связаный датасоурс и может быть грид, которые явно с основном потоке работают (грид по другому не может, VCL). а раз так то вот это
> Вот так я его запускаю но он почему то все равно запускается в основной нити и не дает мне ничего делать
вполне естественно, еще хорошо что совсем не виснет. так нельзя (если предположение верно)
и лутше действительно посмотреть в сторону асинхронного выполнения, проще, все за тебя сделают.


 
voland   (2004-01-28 19:59) [10]

Спасибо за советы запустить получилось теперь хотелось бы еще реализовать одну вещь
при запуске в другой нити хотелось бы останавливать выполняющийся запрос ...


 
ЮЮ ©   (2004-01-29 03:25) [11]

Запросы надо писать так, чтобы не было мучительно больно за бесцельно прожитые минуты ожидания результата запроса :-)



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

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

Наверх




Память: 0.49 MB
Время: 0.02 c
1-79860
кондратий
2004-02-10 17:07
2004.02.25
Delphi / DLL / MDI


14-80091
Mox Fulder
2004-02-03 15:24
2004.02.25
DivX


1-79821
TrogWar
2004-02-11 09:07
2004.02.25
Как создать заставку к проге?


1-79948
wik
2004-02-12 11:01
2004.02.25
Нужен модуль работы с календарем


1-79971
Dmitriy_G
2004-02-13 16:11
2004.02.25
Время выполнения процедуры