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

Массовое удаление слоев

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



Зарегистрирован: 13.11.2008
Сообщения: 18

СообщениеДобавлено: Чт 13 Ноя 2008 17:13    Заголовок сообщения: Массовое удаление слоев Ответить с цитатой

Добрый день!
Существуют ли на сегодняшний день наработки как удалить большое количество слоев по списку?

К примеру база готовится в основном районе, потом обрезается(вручную удаляются слои) развозится по остальным районам+обновляются растры отдельно для каждого района.

Работаю недавно, структуру БД пока еще не знаю, основной ключ как я понял это ID, но он ведь меняется...

_________________
---
Igor V Simonov
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Tulon



Зарегистрирован: 11.07.2006
Сообщения: 77
Откуда: Сочи

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

Зачем удалять слои?
При экспорте карты/карт в обменный файл, указать те слои этих карт, которые нужно экспортировать.

_________________
Нет ни чего сложнее, чем достигнуть простоты.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
igorvsimonoff



Зарегистрирован: 13.11.2008
Сообщения: 18

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

Вся проблема в том, что экспорт и импорт работет очень долго... иногда с косяками. И занимает целый день.

У меня несколько подразделений:
подразделение 1 (главная база)
подразделение 2
подразделение 3
подразделение 4
и т.д.

В подразделении 1 главная база 5 Гб, в остальные подразделения надо привезти определенный набор карт. Сейчас делаю следующим образом:

1. Удаляю из главной базы ненужные слои.
2. В подразделениях выгружаю ихнии карты (они не большие), пользователей и настройки пользователей (из SQL Server).
3. Восстанавливаю базу (главная, с удаленными ненужными картами)
4. Загружаю выгруженные в п.2 карты, пользователей
5. Загружаю настройки пользователей.

Таким образом все обновление занимает 15-20 минут. Но требуется полдня сидеть и ручками удалять ненужные карты. Если делать экспорт/импорт 1 день выгружается и 1-1,5 загружается. Сервера используются достаточно мощные...

Поэтому и спрашиваю как их можно массово удалить???

_________________
---
Igor V Simonov
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Tulon



Зарегистрирован: 11.07.2006
Сообщения: 77
Откуда: Сочи

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

Ну раз требуется массовое удаление и выполняется все время по-сути одна и та же операция, то можно условиться, что карты и слои (удаляемые) будут иметь все время одно и тоже название и написать модуль/скрипт, который будет:
Вариант 1. Находить по имени требуемые элементы (карту, слой, таблицу, справочник и т.д.) и удалять их из базы.
Вариант 2. Выдавать список элементов (карт, слоёв ...) в виде дерева с возможностью их выделения, а затем удалять выделенное.

Плюс первого варианта - нажали кнопочку и ушли пить чай.
Минус первого варианта - если изменилась структура БД или надо что-то поменять, то править прийдется в самом скрипте/модуле.

Плюс второго варианта - универсален, не привязан к структуре конкретной БД.
Минус второго варианта - каждый раз надо заново указывать список элементов для удаления (возможны случайные ошибки пользователя).

_________________
Нет ни чего сложнее, чем достигнуть простоты.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
igorvsimonoff



Зарегистрирован: 13.11.2008
Сообщения: 18

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

Это все хорошо, но я системный администратор а не программист, и модуль написать не смогу, могу написать SQL скрипт, но не знаком со структурой базы так как работаю недавно и ковырять базу не было времени...

А есть ли какие-нибудь наработки? за деньгу конечно?

_________________
---
Igor V Simonov
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Tulon



Зарегистрирован: 11.07.2006
Сообщения: 77
Откуда: Сочи

СообщениеДобавлено: Пн 26 Янв 2009 12:04    Заголовок сообщения: Ответить с цитатой

Есть. Дальше в ЛС.
_________________
Нет ни чего сложнее, чем достигнуть простоты.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Михаил Власов



Зарегистрирован: 14.02.2005
Сообщения: 580
Откуда: ИНТЕГРО

СообщениеДобавлено: Пн 02 Фев 2009 11:39    Заголовок сообщения: Ответить с цитатой

Tulon писал(а):
Есть. Дальше в ЛС.

Почему сразу в ЛС€
Не затаивайте разработки!
Давайте делиться!
Специально для этого сделали раздел: http://www.integro.ru/wiki/index.php?title=%D0%98%D0%BD%D0%93%D0%B5%D0%BE:%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D0%B8_%D0%B8_%D1%83%D1%82%D0%B8%D0%BB%D0%B8%D1%82%D1%8B

_________________
С уважением, Михаил Власов.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Tulon



Зарегистрирован: 11.07.2006
Сообщения: 77
Откуда: Сочи

СообщениеДобавлено: Пн 02 Фев 2009 12:33    Заголовок сообщения: Ответить с цитатой

Добро, Михаил)))
Просто если писать модуль под ту задачу, которая стоит перед Игорем Смирновым, то проще накидать скрипт наподобие приведенного ниже, который, позволит быстро удалять определенные метаданные. Но эта простота приводит к отсутствию интерфейса и не самому "красивому" коду. Я со скриптами раньше никогда не работал, да и сейчас редко приходится, поэтому показывать то, что написано не шибко качественно не хоцца)
Но раз настаиваете, вот пример скрипта, которым сейчас пользуются у нас (лень ради такой ерунды было интерфейс ваять, хотя если повторится задача опять, то сделаю):
Код:
sub MacroActionList_MacroActionStrs()
   Dim Res
   Res = MsgBox ("Удалить слои/справочники Карты1 и Карты2?", vbInformation + vbOKCancel, "Необходимо подтверждение")
   if Res<>1 then
      Exit sub
   end if
   dim Ref1, Ref2, Ref3, Ref4
   dim Map1, Map2
   Ref1 = "Материал строений"
   Ref2 = "Назначение здания"
   Ref3 = "Подпись"
   Ref4 = "Улицы"
   Map1 = "Карта1"
   Map2 = "Карта2"
   dim ResultStr
   dim RefBooks, RNum, RName
   set RefBooks = Application.ActiveDB.RefBooks
   ResultStr = "Справочники удалены: " + Chr(10)
   if RefBooks.Count>0 then
      for RNum=0 to RefBooks.Count-1
         RName = RefBooks.Item(RNum).Name
         if (RName=Ref1) then
            RefBooks.Item(RNum).Delete
            ResultStr = ResultStr + "  " + Ref1 + Chr(10)
            else if (RName=Ref2) then
               RefBooks.Item(RNum).Delete
               ResultStr = ResultStr + "  " + Ref2 + Chr(10)
               else if (RName=Ref3) then
                  RefBooks.Item(RNum).Delete
                  ResultStr = ResultStr + "  " + Ref3 + Chr(10)
                  else if (RName=Ref4) then
                     RefBooks.Item(RNum).Delete
                     ResultStr = ResultStr + "  " + Ref4 + Chr(10)
                  end if
               end if
            end if
         end if
      next
   end if
   dim Maps, Layers, MNum, LName
   ResultStr = ResultStr + Chr(10) + "Карты:" + Chr(10)
   set Maps = Application.ActiveProjectView.MapViews
   if Maps.Count>0 then
      for MNum=0 to Maps.Count-1
         if (Maps.Item(MNum).Map.Name=Map1) then
            ResultStr = ResultStr + "  " + Map1 + " -" + Chr(10)
            set Layers = Maps.Item(MNum).LayerViews
            Do While Layers.Count>0
               LName = Layers.Item(0).Layer.Name
               Layers.Item(0).Layer.Delete
               ResultStr = ResultStr + "    " + LName + " - удален" + Chr(10)
            Loop
            else if (Maps.Item(MNum).Map.Name=Map2) then
               ResultStr = ResultStr + "  " + Map2 + " -" + Chr(10)
               set Layers = Maps.Item(MNum).LayerViews
               Do While Layers.Count>0
                  LName = Layers.Item(0).Layer.Name
                  Layers.Item(0).Layer.Delete
                  ResultStr = ResultStr + "    " + LName + " - удален" + Chr(10)
               Loop
            end if
         end if
      next
   end if
   MsgBox ResultStr
end sub

Этот скрипт удаляет определенный список справочников и все слои в двух картах. Справочники приходится удалять при перезаливке карт, ибо при импорте если справочник существует, то он не обновляется((.
Косяк скрипта в том, что под другой набор метаданных, его надо полностью переделывать.

_________________
Нет ни чего сложнее, чем достигнуть простоты.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Михаил Власов



Зарегистрирован: 14.02.2005
Сообщения: 580
Откуда: ИНТЕГРО

СообщениеДобавлено: Пн 02 Фев 2009 14:03    Заголовок сообщения: Ответить с цитатой

Цитата:
показывать то, что написано не шибко качественно не хоцца

Ситуация знакомая. Нелегко побороть себя и выложить "некрасивый код". Сколько интересных решений канули в "лету" из-за этой "неинтересной" проблемы.
Но! Поскольку тут не форум перфекционистов и нарциссистов, смело публикуйте любые "кривые" и "косые" решения. Поверьте - это реально помогает другим людям.

Цитата:
Косяк скрипта в том, что под другой набор метаданных, его надо полностью переделывать

Ну... Полностью переделывать - это очень громко сказано. Достаточно чуть-чуть подправить.
А в целом, очень даже неплохой пример, прямая дорога сюда: http://www.integro.ru/wiki/index.php?title=%D0%98%D0%BD%D0%93%D0%B5%D0%BE:%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5

Уважаемые! Не ленимся - пополняем базу примеров. Пользователи нам скажут большое человеческое спасибо.

_________________
С уважением, Михаил Власов.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
andreichernov



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

СообщениеДобавлено: Пн 02 Фев 2009 16:32    Заголовок сообщения: Ответить с цитатой

Ну раз можно непричесанное выкладывать.
Мы пользовались таким скриптом по MS SQL.
Перед его использованием надо в ingeo_maps и ingeo_layers добавить поле deleted, а затем в карты, которые надо удалять это поле установить в 1

Код:

update ingeo_layers set deleted=0
update ingeo_layers set deleted=1 where planeid in (select ingeo_maps.id from ingeo_maps where ingeo_maps.id=planeid and ingeo_maps.deleted = 1)

delete from ingeo_links where
(object1id in (select o.id from ingeo_objinfo o,ingeo_layers l where o.id=object1id and o.layerid=l.id and l.deleted=1))
or (object2id in (select o.id from ingeo_objinfo o,ingeo_layers l where o.id=object2id and o.layerid=l.id and l.deleted=1))

delete from ingeo_objinfo where
layerid in (select l.id from ingeo_layers l where layerid=l.id and l.deleted=1)

delete from ingeo_sectors where
layerid in (select l.id from ingeo_layers l where layerid=l.id and l.deleted=1)

delete from ingeo_relation where
(layer1id in (select l.id from ingeo_layers l where layer1id=l.id and l.deleted=1)) or
(layer2id in (select l.id from ingeo_layers l where layer2id=l.id and l.deleted=1))

delete from ingeo_semtabls where
layerid in (select l.id from ingeo_layers l where layerid=l.id and l.deleted=1)

delete from ingeo_themes where
layerid in (select l.id from ingeo_layers l where layerid=l.id and l.deleted=1)

delete from ingeo_prefs where
objectid in (select l.id from ingeo_layers l where objectid=l.id and l.deleted=1)

delete from ingeo_layers where deleted=1


Следующий скрипт находит в базе данных таблицы, которые не являются семантическими таблицами ингео и справочниками
и сооржает текст скрипта для их удаления/
Используемый псевдоним БД ecko_graph_new

Код:


(select 'drop table ['+ name + ']' from sysobjects where xtype = 'U'
and name not in ( (select tablename from ecko_graph_new..ingeo_semtabls) union
   (select tablename from ecko_graph_new..ingeo_refbooks)  ) )
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
igorvsimonoff



Зарегистрирован: 13.11.2008
Сообщения: 18

СообщениеДобавлено: Вт 10 Фев 2009 01:59    Заголовок сообщения: Ответить с цитатой

Всем большое спасибо! Проблема решена... следующим скриптом:

---Юзаем SochiDB
Use SOCHIDB
Print '---------------------------------------------------------------------------------'
PRINT 'СКРИПТ ПОДГОТОВКИ БД ДЛЯ ДЕПАРТАМЕНТА версия от 4 фев 2009г.'
PRINT ' СКРИПТ РАБОТАЕТ 30-40 МИНУТ.'
Print '---------------------------------------------------------------------------------'
Print ' Шаг 1. создание колонки Deleted в INGEO_MAPS'
---Создание в Ingeo_Maps и Ingeo_Layers колонку Deleted для пометки на удаление
alter table Ingeo_Maps
add Deleted varchar (1) Default '0' NOT NULL
go
Print '---------------------------------------------------------------------------------'
Print ' Шаг 2. создание колонки Deleted в INGEO_LAYERS'
alter table Ingeo_LAYERS
add Deleted varchar (1) Default '0' NOT NULL
go
Print '---------------------------------------------------------------------------------'
Print ' Шаг 3. пометка карт на удаление Deleted=1'
---Помечаем все карты, кроме списка ниже на удаление, путем прописывания с колонку Deleted = 1
Update INGEO_MAPS set Deleted = '1' where MAPNAME not in
(
'1___справка___Улицы и красные линии'
,'5000 Строения'
,'Границы города, районов, округов, сельских населенных пунктов'
,'Границы зон'
,'Данные_Земкадастрпалаты_04_12_08_7250141NC51162'
,'Данные_Земкадастрпалаты_29_02_08_ТочкиОбхода_629641XH074557*'
,'Дежурная карта города (неизменяемый вариант)'
,'Зонирование территории'
,'Прогр. стр-ва олимп. объектов и разв. города как горн-клим. кур'
,'Планшеты 1:100000 (Пятигорск)'
,'Сведения о планшетах'
,'Улицы'
,'Экономико планировочные зоны'
,'Ортофотопланы масштаб 1:5000'
,'Планшеты 1:500'
,'Планшеты 1:500 Замененные'
,'Планшеты 1:5000'
)
go
Print '---------------------------------------------------------------------------------'
Print ' Шаг 4. пометка слоев на удаление'
---Помечаем все слои, кроме списка ниже на удаление, путем прописывания с колонку Deleted = 1
Update INGEO_LAYERS set Deleted = '1' where LAYERNAME not in
(
--1___справка___Улицы и красные линии
'Красные линии рабочий слой'
,'Красные линии эталон'
,'Оси улиц'
--5000 Строения
,'Здания'
--Границы города, районов, округов, сельских населенных пунктов
,'Границы сельских населенных пунктов'
--Границы зон
,'Водоохранные зоны'
,'Границы сан зон'
,'Зоны затопления рек'
,'Зоны охраны'
--Данные_Земкадастрпалаты_04_12_08_7250141NC51162
,'Кварталы земельной палаты'
,'Обременения земельной палаты'
,'Участки земельной палаты'
,'Участки земельной палаты с семантическими данными 19_12_2008'
--Данные_Земкадастрпалаты_29_02_08_ТочкиОбхода_629641XH074557*
,'Точки обхода'
--Дежурная карта города (неизменяемый вариант)
,'Земельные участки(деж)'
,'Проектные земельные участки'
--Зонирование территории
,'А: Курортно - рекреационная зона'
,'Б: Селитебная зона-жил. застройка городская с плотностью населения'
,'В: Производственная зона'
,'Г: Территория транспорта и инженерных коммуникаций'
,'Границы'
,'Д: Прочие территории'
--Планшеты 1:100000 (Пятигорск)
,'Автодороги_тропы'
,'Гидрография_лин_точечн'
,'Гидрография_площадная'
,'Гидротех_сооружения'
,'Границы_ограждения'
,'Грунты'
,'Дорожные_сооружения'
,'Железные_дороги'
,'Кварталы_застройки'
,'ЛЭП_Связь'
,'МатОснова'
,'Мосты_Туннели'
,'Оформление'
,'Подписи'
,'Промышленные_объекты'
,'Растительность_лин&точечн'
,'Растительность_площадная'
,'Рельеф'
,'Соц_Культобъекты'
,'Строения'
,'Трубопроводы'
--Прогр. стр-ва олимп. объектов и разв. города как горн-клим. кур
,'Архивные объекты программы'
,'Водопроводы планируемые'
,'Водопроводы проектируемые документально подтвержденные'
,'Газопроводы планируемые'
,'Газопроводы проектируемые документально подтвержденные'
,'Дороги планируемые'
,'Дороги проектируемые документально подтвержденные'
,'Земельные участки документально подтвержденные для стр-ва объектов программы'
,'Земельные участки планируемые (без документов) для стр-ва объектов программы'
,'Зоны от объектов программы'
,'Канализация бытовая планируемая'
,'Канализация бытовая проектируемая документально подтвержденная'
,'Канализация ливневая, дренажная планируемая'
,'Канализация ливневая, дренажная проектируемая документально подтвержденная'
,'Линии связи планируемые'
,'Линии связи проектируемые документально подтвержденные'
,'Линии электропередач планируемые'
,'Линии электропередач проектируемые документально подтвержденные'
,'Тепловые сети планируемые'
,'Тепловые сети проектируемые документально подтвержденные'
--Сведения о планшетах
,'M1:500'
,'M1:5000'
--Улицы
,'Улицы'
--Экономико планировочные зоны
,'Экономико планировочные зоны'
--Планшнеты
-- ,'Ортофотопланы масштаб 1:5000'
-- ,'Планшеты 1:500'
-- ,'Планшеты 1:500 Замененные'
-- ,'Планшеты 1:5000')
go
Print '---------------------------------------------------------------------------------'
Print ' Шаг 5. удаление информации об объектах'
---Удаляем из БД всю информацию об помеченных на удаление объектах
update ingeo_layers set deleted=0
update ingeo_layers set deleted=1 where planeid in (select ingeo_maps.id from ingeo_maps where ingeo_maps.id=planeid and ingeo_maps.deleted = 1)
delete from ingeo_links where
(object1id in (select o.id from ingeo_objinfo o,ingeo_layers l where o.id=object1id and o.layerid=l.id and l.deleted=1))
or (object2id in (select o.id from ingeo_objinfo o,ingeo_layers l where o.id=object2id and o.layerid=l.id and l.deleted=1))
delete from ingeo_objinfo where
layerid in (select l.id from ingeo_layers l where layerid=l.id and l.deleted=1)
delete from ingeo_sectors where
layerid in (select l.id from ingeo_layers l where layerid=l.id and l.deleted=1)
delete from ingeo_relation where
(layer1id in (select l.id from ingeo_layers l where layer1id=l.id and l.deleted=1)) or
(layer2id in (select l.id from ingeo_layers l where layer2id=l.id and l.deleted=1))
delete from ingeo_semtabls where
layerid in (select l.id from ingeo_layers l where layerid=l.id and l.deleted=1)
delete from ingeo_themes where
layerid in (select l.id from ingeo_layers l where layerid=l.id and l.deleted=1)
delete from ingeo_prefs where
objectid in (select l.id from ingeo_layers l where objectid=l.id and l.deleted=1)
delete from ingeo_layers where deleted=1
go
Print '---------------------------------------------------------------------------------'
Print ' Шаг 6. удаление объектов в INGEO_MAPS'
---Удаление самих объектов (всех, кроме описанных ниже) из Ingeo_Maps (информация о них была удалене в предыдущем подскипте)
Delete from INGEO_MAPS where MAPNAME not in
(
'1___справка___Улицы и красные линии'
,'5000 Строения'
,'Границы города, районов, округов, сельских населенных пунктов'
,'Границы зон'
,'Данные_Земкадастрпалаты_04_12_08_7250141NC51162'
,'Данные_Земкадастрпалаты_29_02_08_ТочкиОбхода_629641XH074557*'
,'Дежурная карта города (неизменяемый вариант)'
,'Зонирование территории'
,'Прогр. стр-ва олимп. объектов и разв. города как горн-клим. кур'
,'Планшеты 1:100000 (Пятигорск)'
,'Сведения о планшетах'
,'Улицы'
,'Экономико планировочные зоны'
,'Ортофотопланы масштаб 1:5000'
,'Планшеты 1:500'
,'Планшеты 1:500 Замененные'
,'Планшеты 1:5000'
)
go
Print '---------------------------------------------------------------------------------'
Print ' Шаг 7.удаление объектов в INGEO_LAYERS'
---Удаление самих объектов (всех, кроме описанных ниже) из Ingeo_Layers (информация о них была удалене в предыдущем подскипте)
Delete from INGEO_LAYERS where LAYERNAME not in
(
--1___справка___Улицы и красные линии
'Красные линии рабочий слой'
,'Красные линии эталон'
,'Оси улиц'
--5000 Строения
,'Здания'
--Границы города, районов, округов, сельских населенных пунктов
,'Границы сельских населенных пунктов'
--Данные_Земкадастрпалаты_04_12_08_7250141NC51162
,'Кварталы земельной палаты'
,'Обременения земельной палаты'
,'Участки земельной палаты'
,'Участки земельной палаты с семантическими данными 19_12_2008'
--Данные_Земкадастрпалаты_29_02_08_ТочкиОбхода_629641XH074557*
,'Точки обхода'
--Дежурная карта города (неизменяемый вариант)
,'Земельные участки(деж)'
,'Проектные земельные участки'
--Зонирование территории
,'А: Курортно - рекреационная зона'
,'Б: Селитебная зона-жил. застройка городская с плотностью населения'
,'В: Производственная зона'
,'Г: Территория транспорта и инженерных коммуникаций'
,'Границы'
,'Д: Прочие территории'
--Планшеты 1:100000 (Пятигорск)
,'Автодороги_тропы'
,'Гидрография_лин_точечн'
,'Гидрография_площадная'
,'Гидротех_сооружения'
,'Границы_ограждения'
,'Грунты'
,'Дорожные_сооружения'
,'Железные_дороги'
,'Кварталы_застройки'
,'ЛЭП_Связь'
,'МатОснова'
,'Мосты_Туннели'
,'Оформление'
,'Подписи'
,'Промышленные_объекты'
,'Растительность_лин&точечн'
,'Растительность_площадная'
,'Рельеф'
,'Соц_Культобъекты'
,'Строения'
,'Трубопроводы'
--Прогр. стр-ва олимп. объектов и разв. города как горн-клим. кур
,'Архивные объекты программы'
,'Водопроводы планируемые'
,'Водопроводы проектируемые документально подтвержденные'
,'Газопроводы планируемые'
,'Газопроводы проектируемые документально подтвержденные'
,'Дороги планируемые'
,'Дороги проектируемые документально подтвержденные'
,'Земельные участки документально подтвержденные для стр-ва объектов программы'
,'Земельные участки планируемые (без документов) для стр-ва объектов программы'
,'Зоны от объектов программы'
,'Канализация бытовая планируемая'
,'Канализация бытовая проектируемая документально подтвержденная'
,'Канализация ливневая, дренажная планируемая'
,'Канализация ливневая, дренажная проектируемая документально подтвержденная'
,'Линии связи планируемые'
,'Линии связи проектируемые документально подтвержденные'
,'Линии электропередач планируемые'
,'Линии электропередач проектируемые документально подтвержденные'
,'Тепловые сети планируемые'
,'Тепловые сети проектируемые документально подтвержденные'
--Сведения о планшетах
,'M1:500'
,'M1:5000'
--Улицы
,'Улицы'
--Экономико планировочные зоны
,'Экономико планировочные зоны'
--Планшнеты
,'Ортофотопланы масштаб 1:5000'
,'Планшеты 1:500'
,'Планшеты 1:500 Замененные'
,'Планшеты 1:5000')
go
Print '---------------------------------------------------------------------------------'
Print ' Шаг 8. Приводим в порядок INGEO_PROJECTS'
---Удаляем все проекты, кроме 'Административные задачи' ,'Отдел проектных работ и реализации генплана'
---'Отдел проектных работ и реализации генплана' переименовываем в 'Районные ППО'
Delete from INGEO_PROJECTS where PROJECTNAME not in
('Административные задачи' ,'Отдел проектных работ и реализации генплана')
update Ingeo_Projects set PROJECTNAME='Районные ППО' where PROJECTNAME='Отдел проектных работ и реализации генплана'
go
Print '---------------------------------------------------------------------------------'
Print ' Шаг 9. Удаление привязки к серверу'
update INGEO_PREFS set DATA=NULL where keyname='serverid'
go
Print '---------------------------------------------------------------------------------'
Print ' Шаг 10. Подсчет объектов'
insert into Statistic.dbo.stat (id_maps, name, id_layer, LAYERNAME, count_object)
select INGEO_MAPS.ID as id_maps ,INGEO_MAPS.MAPNAME as name ,INGEO_LAYERS.id as id_layer, LAYERNAME,
(select count (*) from dbo.INGEO_OBJINFO o where o.LAYERID = INGEO_LAYERS.id) as count_object
from dbo.INGEO_MAPS
join dbo.INGEO_LAYERS
on planeid = INGEO_MAPS.id
where mapname in
(
'1___справка___Улицы и красные линии',
'5000 Строения',
'Границы города, районов, округов, сельских населенных пунктов',
'Границы зон',
'Дежурная карта города (неизменяемый вариант)',
'Зонирование территории',
'Прогр. стр-ва олимп. объектов и разв. города как горн-клим. кур',
'Планшеты 1:100000 (Пятигорск)',
'Планшеты 1:500',
'Планшеты 1:500 Замененные',
'Планшеты 1:5000',
'Сведения о планшетах',
'Улицы',
'Экономико планировочные зоны',
'Ортофоопланы масштаб 1:5000')
or mapname like 'Данные_Земкадастрпалаты_%'
order by mapname,LAYERNAME
select INGEO_MAPS.ID as id_maps ,INGEO_MAPS.MAPNAME as name ,INGEO_LAYERS.id as id_layer, LAYERNAME,
(select count (*) from dbo.INGEO_OBJINFO o where o.LAYERID = INGEO_LAYERS.id) as count_object
from dbo.INGEO_MAPS
join dbo.INGEO_LAYERS
on planeid = INGEO_MAPS.id
where mapname in
(
'1___справка___Улицы и красные линии',
'5000 Строения',
'Границы города, районов, округов, сельских населенных пунктов',
'Границы зон',
'Дежурная карта города (неизменяемый вариант)',
'Зонирование территории',
'Прогр. стр-ва олимп. объектов и разв. города как горн-клим. кур',
'Планшеты 1:100000 (Пятигорск)',
'Планшеты 1:500',
'Планшеты 1:500 Замененные',
'Планшеты 1:5000',
'Сведения о планшетах',
'Улицы',
'Экономико планировочные зоны')
or mapname like 'Данные_Земкадастрпалаты_%'
order by mapname,LAYERNAME
go
PRINT ' НЕ ЗАБЫВАЕМ СДЕЛАТЬ ШРИНК, ДАТЬ ПРАВА НА ПРОЕКТЫ!!!'
Print '---------------------------------------------------------------------------------'

_________________
---
Igor V Simonov
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Tulon



Зарегистрирован: 11.07.2006
Сообщения: 77
Откуда: Сочи

СообщениеДобавлено: Вт 10 Фев 2009 10:48    Заголовок сообщения: Ответить с цитатой

О_о Сурово, но главное, что получилось)
_________________
Нет ни чего сложнее, чем достигнуть простоты.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
andreichernov



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

СообщениеДобавлено: Вт 10 Фев 2009 11:16    Заголовок сообщения: Ответить с цитатой

Жуть.
Кто-нить переименует слой и он удалится.
лучше сделай отдельную табличку с ГЛОБАЛЬНЫМИ ид слоев для оставления и оттуда фильтруй.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
igorvsimonoff



Зарегистрирован: 13.11.2008
Сообщения: 18

СообщениеДобавлено: Чт 26 Фев 2009 02:31    Заголовок сообщения: Ответить с цитатой

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

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


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