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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.01 c
3-15469
Jeka
2003-01-20 13:41
2003.02.06
номера документов


3-15453
e-mike
2003-01-20 11:02
2003.02.06
Длинная строка запроса


1-15710
scorpio2002
2003-01-27 12:43
2003.02.06
Дополнительные параметры


1-15743
Dionis
2003-01-28 09:34
2003.02.06
Время между событиями


1-15751
V-Isa
2003-01-28 12:06
2003.02.06
StringGrid, Event





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