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

Вниз

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

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

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

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

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


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

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

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

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


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

> 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 сек.


 
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]

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


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

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


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

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


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

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


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

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


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

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


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

ExecuteOptions := [eoAsyncFetch]


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

ExecuteOptions := [eoAsyncFetch]


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

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


 
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. Или я че-то не так понял? :)


 
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 нет, а ему нужен именно он.


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

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


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

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


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

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


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

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


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

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


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

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


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

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



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

Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.037 c
3-1081438217
Mishenka
2004-04-08 19:30
2004.05.09
Графические изображения в базе?


1-1082700391
Rant
2004-04-23 10:06
2004.05.09
WebBrowser


11-1068323329
puky
2003-11-08 23:28
2004.05.09
GPProf не работает с проектами кола.


7-1080143283
IrBisoff
2004-03-24 18:48
2004.05.09
Не совсем трэй...


3-1081946364
Rule
2004-04-14 16:39
2004.05.09
Read-only+Firebird1.0+ Delphi 7+ Windows





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