Вниз
Скачать: CL | DM;

Прогрес пересчета SQL   Найти похожие ветки 

← →
Alibaba ©   (2002-07-25 13:17) [0]

Всем привет!
Я связал два SQL (мастер/детал)
Посчитался Query1, результат в DBGrid1.
Когда я двигаюсь по DBGrid1, Query2 пересчитывается и показывает результат в DBGrid2.
На событие Query2.AfterOpen я повесил процедуру подсчета количества записей:

procedure TMain.AfterOpen(DataSet: TDataSet);
begin
Label.Caption:="Всего записей - "+IntToStr(Query2.RecordCount);
end;

Query2.AfterOpen:=AfterOpen;

Время пересчета около минуты и я хочу в это время показывать работу (что-бы знать что мы не висим). На-пример, увеличивать значение ProgressBar.

На какое событие Query2 мне повесить увеличивать значения ProgressBar?

Пробовал на Query2.BeforeOpen...
Но в этом случае работает только первый раз, когда считается Query1...

Подскажите кто знает, плиз.


← →
Lusha ©   (2002-07-25 13:40) [1]

Зачем использовать TQuery.RecordCount? Почему не использовать запрос с аггрегатной функцией COUNT... Может и минуту ждать не придется... :)


← →
Володя Шарапов   (2002-07-25 13:50) [2]

Попробуй повесь на BeforeScroll.
Это событие происходит перед тем как форма хочет перейти от одной записи к другой. (по крайней мере так написано в хелпе).


← →
Володя Шарапов   (2002-07-25 13:51) [3]

Имеется ввиду Query1.BeforeScroll.


← →
Володя Шарапов   (2002-07-25 13:52) [4]

> Володя Шарапов
Дык пробовал я так - не хочет! :(


← →
Viewer   (2002-07-25 13:54) [5]

Может попробовать Application.ProcessMessages.


← →
Scotch   (2002-07-25 13:57) [6]

Как то обсуждался вопрос по поводу обработки SQL-ей.
Помоему в этом форуме дней 6 назад.
Там можно написать удаленную процедуру на серваке, которая сообщает клиенту о начале и окончании расчета.


← →
Alibaba ©   (2002-07-25 14:00) [7]

> Scotch
По поводу теоретической возможности существования такой процедуры я очень сомневаюсь...
Или у меня недостаточно знаний... :(


← →
Viewer ©   (2002-07-26 16:30) [8]

Из-за большого количества канареек острова называются Канарские.
А если нежна задержка можно использовать или Sleep(Time) или while VariableBoolean do ;


← →
BAY ©   (2002-07-26 17:00) [9]

Только если запрос выполняется в отдельном потоке


← →
Alibaba ©   (2002-07-26 17:26) [10]

Да,да!
Запрос выполняется в отдельном потоке.
Скажите КАК это сделать!!!
Очень надо!!!!


← →
BAY ©   (2002-07-26 18:00) [11]

В хелпе по TThread все написанно... и пример есть.



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.009 c
14-48310
Igorek
2002-07-22 14:51
2002.08.15
Срочно нужно полное описание синтаксиса ObjectPascal !


14-48308
kaif
2002-07-22 19:23
2002.08.15
Вопрос по IDE


4-48366
antonp
2002-06-10 22:41
2002.08.15
Как узнать Id процесса?


3-47953
KVT2000
2002-07-26 09:30
2002.08.15
Перенос таблиц Paradox в базу на MSSQL сервер


1-48062
diMAN
2002-08-02 19:05
2002.08.15
Ошибка при запуске программы




   Наверх