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

Вниз

Прогрес пересчета 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 вся ветка

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

Наверх





Память: 0.46 MB
Время: 0.006 c
1-48081
ZEE
2002-07-28 17:00
2002.08.15
размеры PopupMenu


1-48169
Belov
2002-08-02 13:22
2002.08.15
Как получить пусть к папке Start - Programs


3-47997
Alfred
2002-07-27 17:19
2002.08.15
Ошибка


4-48358
esprit_bel
2002-06-10 09:10
2002.08.15
иконка


7-48349
Алексей Коваленко
2002-05-31 10:16
2002.08.15
Непрерывная печать на принтер





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