Главная страница
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.043 c
1-79903
Death2
2004-02-07 05:36
2004.02.25
Масштабирование


1-79809
Zheks
2004-02-11 12:02
2004.02.25
Canvas, Shape, стирание того, что нарисовал


1-79914
hamster
2004-02-08 16:23
2004.02.25
Мышь


3-79600
samalex
2004-02-02 12:38
2004.02.25
Не работает ADO под win98


3-79590
rosl
2004-01-28 04:27
2004.02.25
количество заполненных строк в файле excel