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

Быстрая очистка слоя

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



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

СообщениеДобавлено: Ср 23 Сен 2009 10:37    Заголовок сообщения: Быстрая очистка слоя Ответить с цитатой

Добрый день, помогите...
хотел программно реализовать очистку слоев, но перебор и удаление объектов происходит уж больно медленно, в то время как из проводника БД, очистка слоев работает быстро...
код следующий:
Код:

function TIngeoMapService.DeleteObjByLayer(aLayerID: WideString): Integer;
var
  aCounter: Integer;
  aMapObjects: IIngeoMapObjects;
  aMapObjectsQuery: IIngeoMapObjectsQuery;
  anObjectID: WideString;
  aShapeIndex: Integer;
begin
  aMapObjects:=IngeoApp.ActiveDb.MapObjects;
  aMapObjectsQuery:=aMapObjects.QueryByLayers(aLayerID);
  aCounter:=0;
  while Not aMapObjectsQuery.EOF do begin
    aMapObjectsQuery.Fetch(aLayerID, anObjectID, aShapeIndex);
    aMapObjects.DeleteObject(anObjectID);
    inc(aCounter);
  end;
  aMapObjects.UpdateChanges;
  result:=aCounter;
end;
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
andreichernov



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

СообщениеДобавлено: Ср 23 Сен 2009 11:13    Заголовок сообщения: Ответить с цитатой

Раньше в проводнике тоже долго работало.
Рустам говорил, что из-за топосвязей.
Потом очистку слоя они как-то оптимизировали, но, видимо, используются внутренние функции Ингео.

Попробуйте, насколько ускоряется процесс, если у слоя убрать топосвязи со всеми другими слоями.
Если дело в этом, то можно попытаться запомнить вид топосвязей, а после удаления всех объектов слоя их восстанавливать.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Баландин Денис



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

СообщениеДобавлено: Ср 23 Сен 2009 11:50    Заголовок сообщения: Ответить с цитатой

Топосвязей нет, объекты тоже простые, из одной формы, одного контура
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
andreichernov



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

СообщениеДобавлено: Ср 23 Сен 2009 12:09    Заголовок сообщения: Ответить с цитатой

Уточните - топосвязей нет у объектов или у слоя не стоит никаких отношений с другими слоями.
Если у слоя все-таки выставлены какие-то, то все равно по каждому объекту будут искаться топосвязи в таблице ingeo_links (хоть их и нету)
На это уходит много времени.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Баландин Денис



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

СообщениеДобавлено: Ср 23 Сен 2009 15:11    Заголовок сообщения: Ответить с цитатой

Топосвязей нет у слоя вообще, хотя надо будет сравнить как они повлияют на вышеприведенный код
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Алексей В. Бастриков



Зарегистрирован: 02.06.2008
Сообщения: 118
Откуда: ООО "Инфопроект", г. Екатеринбург

СообщениеДобавлено: Ср 23 Сен 2009 16:59    Заголовок сообщения: Ответить с цитатой

Думается мне, что задачу можно решить SQL-запросом к БД ИнГЕО на удаление данных, учесть при этом все таблицы, связанные с INGEO_LAYERS. Cool
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
BarakudaX777



Зарегистрирован: 07.07.2014
Сообщения: 26
Откуда: ООО "ГЕОГРАД" г. Орск

СообщениеДобавлено: Пн 01 Сен 2014 17:17    Заголовок сообщения: Ответить с цитатой

Вопрос так и не решен? Кто чего добился?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков Часовой пояс: GMT + 5
Страница 1 из 1

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


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