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

Вниз

Проблеммка - Визуальные компоненты - При обрабтке большой базы   Найти похожие ветки 

 
Stenkz   (2003-01-20 08:36) [0]

При обрабтке большой базы, примерно 120 000 записей, на форме отключаются визуальные компоненты, например ProgreesBar и включаются только при окончании цикла. Например здесь. Pb1 - прогресс бар
Вот пример кода:
Pb1.Position:=0;
Pb1.Max:=TPr_Cred.RecordCount;
Lproc.Caption:="0%";
while (not TPr_Cred.EOF )do
begin
PB1.Position:=TPr_Cred.RecNo;
LProc.Caption:=FloatToStr(RoundTo PB1.Position/Pb1.Max*100,-2))+" %";
TPr_Cred.Delete;
end;

Дело приосходит на WinXp


 
Соловьев   (2003-01-20 09:27) [1]

Вызови метод Update. А лучше всего в отдельном потоке сделай прогресс...


 
Johnmen   (2003-01-20 09:30) [2]

Application.ProcessMessages последней строкой цикла


 
BorisUK   (2003-01-20 09:33) [3]

Pb1.Position:=0;
Pb1.Max:=TPr_Cred.RecordCount;
Lproc.Caption:="0%";
Application.ProcessMessages;
while (not TPr_Cred.EOF )do
begin
PB1.Position:=TPr_Cred.RecNo;
PB1.Refresh;
LProc.Caption:=FloatToStr(RoundTo PB1.Position/Pb1.Max*100,-
2))+" %";
LProc.Refresh;
TPr_Cred.Delete;
end;
Ну и в потоке такие вещи делать конечно правильнее.
Главное на время выполнения доступ к таблице залочить!


 
Johnmen   (2003-01-20 09:41) [4]

>BorisUK © (20.01.03 09:33)
>Ну и в потоке такие вещи делать конечно правильнее.

В чем правильность, брат ?


 
111   (2003-01-20 09:51) [5]

Удалено модератором


 
Stenkz   (2003-01-20 12:44) [6]

Братцы - не работает, прогрессбар сразу 100% показывает, и значёк SQl моргает...


 
Digitman   (2003-01-20 12:54) [7]

>Stenkz

Ты читал вот это ? <Johnmen> © (20.01.03 09:30) ???



 
Johnmen   (2003-01-20 12:56) [8]

Что было сделано ?
(Кстати : PB1.Position:=PB1.Position+1; так правильней...)


 
Stenkz   (2003-01-20 13:00) [9]

сделано например <Johnmen> © (20.01.03 09:30)
сделано BorisUK © (20.01.03 09:33)


 
Delirium^.Tremens   (2003-01-20 13:02) [10]

Johnmen © (20.01.03 12:56)
> (Кстати : PB1.Position:=PB1.Position+1; так правильней...)

В чем правильность, брат?
Что на счет шага?


 
Johnmen   (2003-01-20 13:09) [11]

>Delirium^.Tremens © (20.01.03 13:02)

Никто же не гарантирует корректность RecNo...




 
Delirium^.Tremens   (2003-01-20 13:15) [12]

Johnmen © (20.01.03 13:09)
ProgressBar.StepIt; :-)


 
Johnmen   (2003-01-20 13:26) [13]

>Delirium^.Tremens © (20.01.03 13:15)

Практически монопенисно... :-)))))))))


 
Stenkz   (2003-01-20 13:47) [14]

После того как сделал PB1.Position:=PB1.Position+1
заработало.
Это что RecNo выдавал конец таблицы? С чем это может быть связано?


 
Delirium^.Tremens   (2003-01-20 14:04) [15]

Фильтры .. etc.


 
Johnmen   (2003-01-20 14:11) [16]

RecNo не поддерживается используемым тобой движком для используемой тобой БД. Вообще про это св-во лучше забыть...


 
Stenkz   (2003-01-21 10:36) [17]

Спасибо всем за ответы :) Вери санькс...


 
izyum   (2003-01-21 13:15) [18]

В некоторых БД, хоть это и не рекомендуется, можно использовать RecordCount и RecNo. Проблема в том, что, например IB, выдает в РекордСаунт количество уже отфетченных записей, а не реальное их количество в таблице. Для того что бы он показал правильное число записей перед использованием этих свойств сделай NameTable.FetchAll.



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

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

Наверх





Память: 0.47 MB
Время: 0.009 c
6-15784
yura1975
2002-12-11 13:26
2003.02.06
Как из скрипта (CGI ) запустить на выполнение другой скрипт!?


1-15624
Smok_er
2003-01-23 21:45
2003.02.06
И снова MDI


1-15677
Yr2
2003-01-24 21:55
2003.02.06
TNMGeneralServer


3-15483
Cossys
2003-01-20 15:53
2003.02.06
Хэээлп! Фичи Qreport


3-15452
Valeris
2003-01-17 19:36
2003.02.06
Что не так?





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