как увеличить процесса обработки | |
---|---|
All911 Автор Сообщений: 23 Дата регистрации: 28.08.2014 |
есть программа создается таблица данных по выбранным реквизитам а потом передается таблицу в excel , по времени файл создается в течение 1 минуты, чтобы для пользователя было видно я вставила progressbar для формирование данных по реквизитам, но увеличилось время формирование на 5-10 мин . Можно это както исправить чтобы время обработки не увеличилось и был прогресс бар?
часть кода: select TER DO FORM p_cent FOR I = 1 TO 100 a = inkey(.01) scan a=a+1 UPDATE P SET vsego=agg.vsego, c_03 = agg.c_03, c_05 = agg.c_05,SUM_STK = agg.SUM_STK ; FROM (Select SUM(IIF(TER.Gr=>"03", 1, 0)) VSEGO,; SUM(IIF(TER.Gr="03", 1, 0)) c_03, ; SUM(IIF(TER.Gr="05" , 1, 0)) c_05, ; SUM(IIF(TER.Gr<"10" , 1, 0)) SUM_STK, ; FROM TER) agg ; WHERE P.kod_str="010" UPDATE P SET vsego=agg.vsego, c_03 = agg.c_03, c_05 = agg.c_05,SUM_STK = agg.SUM_STK ; FROM (Select SUM(IIF(TER.Gr=>"03", 1, 0)) vsego, ; SUM(IIF(TER.Gr="03" , 1, 0)) c_03, ; SUM(IIF(TER.Gr="05" , 1, 0)) c_05, ; SUM(IIF(TER.Gr<"10" , 1, 0)) SUM_STK, ; FROM TER) agg ; WHERE P.kod_str="011" endscan p_cent.Progress1.Value = i ENDFOR p_cent.Release |
Re: как увеличить процесса обработки | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
Трындец...
Сами вставили тормоза в программу и теперь удивляются... Зачем тут циклы? Зачем одну и ту же пару запросов гонять по сто раз в цикле? Да еще и с задержкой между итерациями? Вы хотели, что бы update'ы вам градусник показали? ------------------ Лень - это неосознанная мудрость. |
Re: как увеличить процесса обработки | |
---|---|
All911 Автор Сообщений: 23 Дата регистрации: 28.08.2014 |
P_cent это форма с градусником
|
Re: как увеличить процесса обработки | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
Да без разницы. Вы какой логикой руководствовались при написании сего кода? ------------------ Лень - это неосознанная мудрость. |
Re: как увеличить процесса обработки | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
А покажите как он создавался за 1 мин. Если этот же код, может вместо градусника, сделать что бы он за 1 сек. выполнялся? ------------------ |
Re: как увеличить процесса обработки | |
---|---|
All911 Автор Сообщений: 23 Дата регистрации: 28.08.2014 |
да этот только без формы P_cent
|
Re: как увеличить процесса обработки | |
---|---|
All911 Автор Сообщений: 23 Дата регистрации: 28.08.2014 |
так градусник нужен по заданию , чтобы пользователь видел как идет процесс
|
Re: как увеличить процесса обработки | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
КАКОЙ процесс? Выполнения команды Update? Зачем 100 раз делать один и тот же scan в котором, в свою очередь, запускать команды берущие и пишущие одни и те же данные? И все это, в результате, в количестве 100 * количество записей под scan? Да еще с задежками на inkey(). Он то тут вообще что делает? Задержка для ускорения процесса? ------------------ Лень - это неосознанная мудрость. |
Re: как увеличить процесса обработки | |
---|---|
of63 Сообщений: 25244 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Можно заменить на время строку:
p_cent.Progress1.Value = i на WAIT STR(m.i) WINDO NOWAIT а другие упоминания об этой форме заремарить, чтобы посмотреть, может не 100 кратное присвоение .Value = i виновато в задержке (это само по себе не нагружает фокс, если не предпринимать специальных усилий для этого) |
Re: как увеличить процесса обработки | |
---|---|
Taran Сообщений: 13623 Откуда: Красноярск Дата регистрации: 16.01.2008 |
|
Re: как увеличить процесса обработки | |
---|---|
All911 Автор Сообщений: 23 Дата регистрации: 28.08.2014 |
спасибо
|
Re: как увеличить процесса обработки | |
---|---|
All911 Автор Сообщений: 23 Дата регистрации: 28.08.2014 |
спасибо
|
© 2000-2024 Fox Club  |