Список форумов www.integro.ru www.integro.ru
ЦСИ ИНТЕГРО
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

работа с MapObject(s?), VBScript

 
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков
Предыдущая тема :: Следующая тема  
Автор Сообщение
Nikita



Зарегистрирован: 28.04.2009
Сообщения: 2
Откуда: Екатеринбург

СообщениеДобавлено: Чт 22 Окт 2009 16:57    Заголовок сообщения: работа с MapObject(s?), VBScript Ответить с цитатой

здравствуйте. написал такой вот скрипт:
Код:
sub
...
set mapobjs = Application.ActiveDb.MapObjects
set objsqry = mapobjs.QueryByLayers("some_layer_id")
objsqry.Reset

do
  idcur = objsqry.ObjectID
  set objcur = mapobjs.GetObject(idcur)
  if (objcur.SemData.GetValue("t1","f1",0) <> "" and objcur.SemData.GetValue("t1","f1",0)) then
     x = Int((objcur.X1 + objcur.X2)/2)
     y = Int((objcur.Y1 + objcur.Y2)/2)
     objcur.SemData.SetValue "t1", "f3", x, 0
     objcur.SemData.SetValue "t1", "f4", y, 0
  end if
  objsqry.MoveNext
loop until objsqry.EOF
mapobjs.UpdateChanges
end sub


вроде все работает как надо. но одна проблема возникла. в ходе работы (данных много) процесс Ингео сжирает оперативную память пропорционально количеству обработанных данных. облазил весь ingeointf.chm, и не нашел там функций для очистки памяти или завершения транзакций MapObject(s?). для самого вбскрипта тоже не нашел команд для какой-то очистки ссылок. подскажите пожалуйста, что нужно сделать.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
andreichernov



Зарегистрирован: 14.02.2005
Сообщения: 209
Откуда: Самара

СообщениеДобавлено: Чт 22 Окт 2009 18:20    Заголовок сообщения: Ответить с цитатой

вызывайте mapobjs.UpdateChanges внутри цикла, например, через каждые 50 измененных объектов.
и все будет нормально.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


© phpBB Group
Русская поддержка phpBB