Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
10.03.2010, 18:37
|
|||
---|---|---|---|
|
|||
lds.Saveas('имя файла', XML!, False) = -1 |
|||
#18+
Приветствую всех! Коллеги, проблема такая: периодически отказывается работать указанная функция, тупо возвращает -1. Поясню подробнее: PB 9. В приложении исходные данные засасываются в датасторы, потом программа их пережевывает (в основном наложением фильтров, есть рекурсия, много копирования данных через get(set)fullstate()) и результат выплевывается в другие датасторы, которые по концухе должны выгружаться в XML. В конечных ds заданы шаблоны и т.д. Все работало на ура на определенных объемах, сейчас исходные данные выросли и полезла ошибка. Причем, если считать lds.Object.DataWindow.Data.XML, то будет пусто, т.е. в один прекрасный момент это свойство слетает, причем в в приложении ни одна ds или dw в XML больше не выгружаются (в другие форматы вроде нормуль). Помогает только перезапуск приложения, если запускать из оболочки, то после этого и dw не открываются в пайнтере - ошибка "error parsing template" - слетает шаблон. - только перезагрузка оболочки. Т.е. видимо ошибка на уровне всей системы а не конкретного объекта. Что пытался: пересоздание датастор, замена ds на dw, сохранение на диск потом reset на все ds потом garbagecollect() потом загрузка с диска, работа через pbdom_bldr.BuildFromDataStore(ds), garbagecollect() везде и прочие танцы с бубном. Еще добавлю, что после загрузки исходной инфы программа в памяти занимает метров 80 (смотрю по дисп. задач), при работе память растет до 150 - 200. Что за косяк? как бороться? РУками XML лень делать. Есть мысль написать внешний exeшник, который скажем psr в xml гоняет, но это не очень красиво, имхо. Хелп ми плиз! Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.03.2010, 19:02
|
|||
---|---|---|---|
|
|||
lds.Saveas('имя файла', XML!, False) = -1 |
|||
#18+
То что память так растет - это работает менеджер памяти PB так ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.03.2010, 11:12
|
|||
---|---|---|---|
lds.Saveas('имя файла', XML!, False) = -1 |
|||
#18+
У меня, при решении таких же задач, были проблемы с памятью, но все решилось использованием garbagecollect(). Сейчас все работает "как часы". Правда у меня, как правило, количество строк в DS обычно порядка нескольких тысяч. Не более. Смущает то, что проблемы у Вас возникли "при достижении определенных объемов". Xочется посоветовать в скрипте поискать переменные типа "Integer" и заменить их на "Long". А вообще - соболезную. Хуже всего - это "плавающие" ошибки. Если удается четко фиксировать ситуацию возникновения проблемы, то всегда быстро удается её решить. Good Luck ! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.03.2010, 19:01
|
|||
---|---|---|---|
|
|||
lds.Saveas('имя файла', XML!, False) = -1 |
|||
#18+
Короче, по уму так и не удалось разобраться ((. Нет времени. Дописал прогу так, что при вызове с определенным параметром происходит только что то типа: lds = Create DataStore lds.DataObject = as_psrfname lds.Saveas( ls_xmlfname, XML!, False) Destroy(lds) Halt Сохраняю в psr (ладно хоть это работает , потом запускаю самого себя с параметром. Работает железно, но это извращение, имхо. Всем спасиб. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=15&mobile=1&tid=1335995]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 154ms |
0 / 0 |