|
Pb-9 + долгий вызов макроса и ошибка...
|
|||
---|---|---|---|
#18+
Приветсвую, коллеги! Есть вопрос по макросам. Собственно в чём трабл, некий макрос толкается в цикле по 100 раз с клиентской части к примеру и из одних Excel файлов рождается куча маленьких (деваться было некуда из-за часто менющихся алгоритмов обработки файлов) . Вся эта конструкция работала 2 года без проблем, но выросли объёмы и началось... Сейчас проблема в том, что если макрос работает более 5-ти минут (хотя бы 30 минут ждал ответ от макроса ), то программа считает процесс ошибочным и возвращает на клиент ошибку. Может кто с таким сталкивался, как это лечить? Спрасибо Сам вызов макроса в цикле из PowerBuilder выглядит так: try ole.Run("Module3.Begin_work_av_newtecnology" , & string(path_name_av ), & string(file_name_av ), & string(lpu_name_av ) ) CATCH (runtimeerror error2) str_macr = "Module3.Begin_work_av_newtecnology" + ' ' + & string(path_name_av ) + ' , ' + & string(file_name_av ) + ' , ' + & string(lpu_name_av ) messagebox("Ошибка!",'Не смог выполнить макрос! ' + error2.text + '~n' + & ' Споткнулся на файле =' + file_name_av + ' для ЛПУ = ' + lpu_name_av + '~n' + & ' Попытался выполнить ' + '~n' + str_macr ,StopSign!,Ok!) return -1 end try ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2011, 14:13 |
|
Pb-9 + долгий вызов макроса и ошибка...
|
|||
---|---|---|---|
#18+
Попробуйте в свой цикл GarbageCollect() вставить после каждого end try ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2011, 15:36 |
|
Pb-9 + долгий вызов макроса и ошибка...
|
|||
---|---|---|---|
#18+
Есть перед каждым вызовом - GarbageCollect() . Не то... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2011, 16:55 |
|
Pb-9 + долгий вызов макроса и ошибка...
|
|||
---|---|---|---|
#18+
VanoRПопробуйте в свой цикл GarbageCollect() вставить после каждого end try GarbageCollect() ставится не после END TRY а в FINALLY ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2011, 17:04 |
|
Pb-9 + долгий вызов макроса и ошибка...
|
|||
---|---|---|---|
#18+
Не, не поможет, если только параллельным потоком пустить, а тут слип забахать или еще какую заглушку, периодически проверяя результат ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2011, 18:37 |
|
Pb-9 + долгий вызов макроса и ошибка...
|
|||
---|---|---|---|
#18+
> To spas2001 Неее первичные файлы должны обрабатываться друг за другом, паралельный процесс не подойдёт. Задачу в лоб никак не решить простановкой какой нить опцией в приложении или в самом Excel? Вообще откуда такое ограничение на ожидание не более 5-ти минут? (Забыл уточнить - Office-2003). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2011, 09:34 |
|
Pb-9 + долгий вызов макроса и ошибка...
|
|||
---|---|---|---|
#18+
Выдача сообщений, параметр DisplayAlerts у вас в каком положении находится? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2011, 10:04 |
|
Pb-9 + долгий вызов макроса и ошибка...
|
|||
---|---|---|---|
#18+
False ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2011, 10:33 |
|
Pb-9 + долгий вызов макроса и ошибка...
|
|||
---|---|---|---|
#18+
Включите, посмотрим хоть что будет выдавать ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2011, 10:38 |
|
Pb-9 + долгий вызов макроса и ошибка...
|
|||
---|---|---|---|
#18+
Вы имеете в виду что Excel выдаёт или Power - какую системную ошибку бросает на эран. Второе у меня есть! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2011, 11:24 |
|
Pb-9 + долгий вызов макроса и ошибка...
|
|||
---|---|---|---|
#18+
Excel конечно, а то может там где-нибудь вопрос вылазит ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2011, 11:31 |
|
Pb-9 + долгий вызов макроса и ошибка...
|
|||
---|---|---|---|
#18+
oExcel.SetAutomationTimeout(<timeout_on_seconds>) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2011, 12:28 |
|
Pb-9 + долгий вызов макроса и ошибка...
|
|||
---|---|---|---|
#18+
> To Ikar А как этого добиться? у меня Excel это проглатывать не хочет! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2011, 12:38 |
|
Pb-9 + долгий вызов макроса и ошибка...
|
|||
---|---|---|---|
#18+
Век живи и учись, ещё и в хелпе написано тоже самое , да и ответ про 5-ть минут я получил: Controls OLEObject objects Syntax oleobject.SetAutomationTimeout ( interval ) Argument Description oleobject The name of an OLEObject variable containing the object for which you want to set the timeout period. interval A 32-bit signed long integer value (in milliseconds) specifying how long a PowerBuilder client waits before canceling a procedure call. The default value is 300,000 milliseconds (5 minutes). Specifying 0 or a negative value resets interval to the default value. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2011, 13:34 |
|
Pb-9 + долгий вызов макроса и ошибка...
|
|||
---|---|---|---|
#18+
Вот, а говорил ничего сделать нельзя:) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2011, 15:23 |
|
|
start [/forum/topic.php?fid=15&fpage=20&tid=1335749]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 139ms |
0 / 0 |