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

Вниз

Потокобезопасный TADOQuery.Open, помогите советом!   Найти похожие ветки 

 
DBDEV   (2004-04-13 12:53) [0]

Собственно тема такая.
Нужно организовать чтение данных в отдельном потоке. Во-первых, освободить поток интерфейса, а во-вторых сделать окошко  с Progress Bar-ом.

TADOQuery.OnFetchProgress не адекватен.

Может у кого есть действующие примеры и решения. За исходники буду благодарен!


 
sniknik ©   (2004-04-13 13:03) [1]

> TADOQuery.OnFetchProgress не адекватен.
люблю подобные бездоказательные заявления.


 
DBDEV   (2004-04-13 13:05) [2]

По крайней мере в моем случае. попытка выполнить:

void __fastcall TForm1::ADODataSet1FetchProgress(TCustomADODataSet *DataSet, int Progress, int MaxProgress, TEventStatus &EventStatus)

{
 Caption = "Percent complete: " +
   IntToStr(Trunc(Progress / MaxProgress * 100)) + "%";
 Application->ProcessMessages;
}


Приводит к 0% в Caption-е и сразу 100% после. Никакого эффекта прогресса, хотя операция занимает 3-8 сек.


 
sniknik ©   (2004-04-13 13:09) [3]

а режим асинхронного получения данных включен? подозреваю нет (т.что это ты неадекватен, пока во всяком случае).


 
DBDEV   (2004-04-13 13:17) [4]

> а режим асинхронного получения данных включен?
А как его включать? Где?


 
DBDEV   (2004-04-13 13:30) [5]

> а режим асинхронного получения данных включен?
А как его включать? Где?


 
clickmaker ©   (2004-04-13 13:55) [6]

ExecuteOptions := [eoAsyncFetch]


 
sniknik ©   (2004-04-13 14:28) [7]

clickmaker ©   (13.04.04 13:55) [6]
;) не неправильно, он же получение данных делает (ADODataSet1FetchProgress) а не выполнение.
но направление уже есть, догадается.


 
clickmaker ©   (2004-04-13 14:56) [8]


> sniknik ©   (13.04.04 14:28) [7]

На выполнение есть eoAsyncExecute. Или я че-то не так понял? :)


 
sniknik ©   (2004-04-13 15:15) [9]

eoAsyncExecute это значит запрос будет выполнятся асинхронно (а не фетчится), т.е. сразу после Open получим возврат в программу, с рекордсетом as is на тот момент. сработает только событие на окончание выполнения (ExecuteComplete) у коннекта, а FetchProgress нет, а ему нужен именно он.


 
DBDEV   (2004-04-13 15:35) [10]

2 sniknik: и как же быть?


 
sniknik ©   (2004-04-13 23:26) [11]

поставить асинхронное получение данных, если еще не догадался то ExecuteOptions := [eoAsyncFetch]


 
DBDEV   (2004-04-15 13:43) [12]

2 sniknik: какой же ты умный!



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

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

Наверх




Память: 0.49 MB
Время: 0.035 c
14-1082260151
Думкин
2004-04-18 07:49
2004.04.11
С днем рождения! 18 апреля.


4-1078654631
GrayFace
2004-03-07 13:17
2004.04.11
Как получать и изменять тексты кнопок OK , Cancel и т.д.


1-1080280135
Ozone
2004-03-26 08:48
2004.04.11
TMemoryStream


4-1076104310
Абдурахман
2004-02-07 00:51
2004.04.11
чтение куска файла


3-1079222596
Anarki
2004-03-14 03:03
2004.04.11
Access - вопросы по про поле AutoNumber