powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / lds.Saveas('имя файла', XML!, False) = -1
4 сообщений из 4, страница 1 из 1
lds.Saveas('имя файла', XML!, False) = -1
    #36512538
armblg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую всех!
Коллеги, проблема такая: периодически отказывается работать указанная функция, тупо возвращает -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 гоняет, но это не очень красиво, имхо.
Хелп ми плиз! Спасибо.
...
Рейтинг: 0 / 0
lds.Saveas('имя файла', XML!, False) = -1
    #36512579
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То что память так растет - это работает менеджер памяти PB так
...
Рейтинг: 0 / 0
lds.Saveas('имя файла', XML!, False) = -1
    #36513407
Фотография ChV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня, при решении таких же задач, были проблемы с памятью, но все решилось использованием garbagecollect(). Сейчас все работает "как часы". Правда у меня, как правило, количество строк в DS обычно порядка нескольких тысяч. Не более.
Смущает то, что проблемы у Вас возникли "при достижении определенных объемов". Xочется посоветовать в скрипте поискать переменные типа "Integer" и заменить их на "Long".
А вообще - соболезную. Хуже всего - это "плавающие" ошибки. Если удается четко фиксировать ситуацию возникновения проблемы, то всегда быстро удается её решить.

Good Luck !
...
Рейтинг: 0 / 0
lds.Saveas('имя файла', XML!, False) = -1
    #36524640
armblg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Короче, по уму так и не удалось разобраться ((. Нет времени.
Дописал прогу так, что при вызове с определенным параметром происходит только что то типа:

lds = Create DataStore
lds.DataObject = as_psrfname
lds.Saveas( ls_xmlfname, XML!, False)
Destroy(lds)
Halt

Сохраняю в psr (ладно хоть это работает , потом запускаю самого себя с параметром. Работает железно, но это извращение, имхо. Всем спасиб.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / lds.Saveas('имя файла', XML!, False) = -1
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]