Никак не могу понять, из-за чего возникает ошибка. В процессе обработки полилиний я использую различные операции и команды, в частности, использую команду MAPTRIM:
Извините, вам запрещён просмотр содержимого спойлеров.
Так же мне приходится использовать команду MAPCLEAN, чтобы исправлять "неправильную" геометрию полилиний:
Извините, вам запрещён просмотр содержимого спойлеров.
Первая функция выполняется всего пару раз, чаще всего - всего один раз. А вот вторая функция выполняется по циклу десятки, а иногда и сотни раз.
И все это внутри одной главной транзакции.
В такой конфигурации, на четвертый раз выполнения начинают происходить странные вещи. Первые три раза команда (запускаемая из автокада) отрабатывает на отлично, а вот на четвертый раз она начинает пропускать некоторые полилинии, которые до этого отрабатывались без каких-либо проблем. На пятый раз появляется ошибка "Адресат вызова создал исключение" и идет ссылка на строку 34 из первой команды. После этого сам автокад начинает вести себя очень странно - объекты чертежа выбираются, но в свойствах "Ничего не выбрано". Выбор объектов не снимается после нажатия Esc. Приходится закрывать этот чертеж и открывать заново. Империческим путем я выяснил, что эта ошибка возникает только тогда, когда присутствует вызов команды MAPCLEAN. Я попытался заменить ее на OVERKILL:
Извините, вам запрещён просмотр содержимого спойлеров.
Но результаты превзошли все мои ожидания - уже на втором расчете возникают описанные выше проблемы, но уже с ссылкой на строку 6 из той же команды.
Причем все расчеты выполнялись при идентичных исходных данных, никаких отличий нет.
Я уже несколько дней ломаю голову, что же тут такое происходит и почти доломал ее )) Я смог придумать одно единственное более менее внятное объяснение - все манипуляции с полилиниями я провожу в одной открытой транзакции и в этой же транзакции я вызываю команды MAPCLEAN и OVERKILL. Возможно, их нужно вызывать вне открытой транзакции?