| | COM help [ Николай Гипский ] Четверг, 17 апреля 2008, 10:59
День добрый.
Тут одному легальному пользователю койчо автоматизирую. Пароль на профиль на говорит поэтому пишу через форум.
1. Подскажите пожайлуста в каком COM примере, разделе сайта/справки по COM найти код помогущий мне после того как я открыл БД админом монопольно - удалить к ..... всех пользователей.
Спасибо. |
|
| | [ ObjectLand Support ] Четверг, 17 апреля 2008, 11:52
| См. "Коллекции объектов", коллекция GeoDatabase::Users. Необходимо удалить все элементы коллекции. Это можно сделать открыв ГБД как администратор. Поэтому пользователя, для которого свойство Administrator = true, нужно удалять последним. |
|
| | [ Николай Гипский ] Четверг, 17 апреля 2008, 14:35
Великолепно Delete работает лучше чем в Оффиссе, с удалением слоев тож разобрался. С удалением тем, выборок, таблиц и типов походу тож проблем не будет. Теперь надо из одной базы в другую покопировать слои (Правка/копировать/целиком/изтекущейГБД - это в меню). Где это искать в COM'е .
Спасибо. |
|
| | [ ObjectLand Support ] Четверг, 17 апреля 2008, 14:43
| См. раздел "Объект GDBCopier" |
|
| | [ Николай Гипский ] Пятница, 18 апреля 2008, 16:03
Посмотрел справку и единственный пример. Сналету не въехал. Захотелось побежать за поллитрой. Ладно буду в понедельник неторопясь смотреть.
Огромное спасибо. |
|
| | [ Николай Гипский ] Понедельник, 21 апреля 2008, 17:31
Понедельник по причине 13-го числа не задался. Но вопрос был да и есть :
Есть две одинаковые базы Objectl'энда в одной не хватает пары тем. Все данные для них (там слои, типы и пр. ) есть. Как правильно пусть даже руками (в смысле интерактивно) скопировать их из одной базы в другую. А то достало пересоздавать.
Спасибо. |
|
| | [ Николай Гипский ] Понедельник, 21 апреля 2008, 17:37
Ага попробовал структурой с новой картой вроде неплохо скопировалась. Теперь бы поменять теме карту и все былобы замечательно .... Не подскажете ...?
Спасибо. |
|
| | [ ObjectLand Support ] Понедельник, 21 апреля 2008, 18:14
| Такого сервиса не предусмотрено. Нужно программно читать все свойства исходной темы и добавлять эти свойства в новую тему (для другой карты). |
|
| | [ Николай Гипский ] Вторник, 22 апреля 2008, 15:34
Не предусмотрено - ладно. Хотя можно и отнести к предложениям к разработчикам - чтоб предусмотреть. А руками как правильно скопировать ????
Спасибо. |
|
| | [ ObjectLand Support ] Вторник, 22 апреля 2008, 15:59
| Внимательно создать тему с нуля, с теми же слоями, типами, фильтрами, масштабными зонами, стилями и пр.)) |
|
| | [ Николай Гипский ] Вторник, 22 апреля 2008, 16:10
Поработал с objGDBCopier
сваял конструкцию
Dim objGDBEngine, objGDB ,objGDBUser , strGDBPath
Dim objGDBSrc
Dim objGDBCopier
Set objGDBEngine = WScript.CreateObject("GDBEngine.Application")
strGDBPath = "d:\zemkom\tst\zemkom"
Set objGDB = objGDBEngine.OpenGDB(strGDBPath, gdbOpenExclusive Or gdbOpenReadWrite Or gdbOpenNoChgFile, "", "", "")
strGDBPath = "d:\asy\work\prev\city"
Set objGDBSrc = objGDBEngine.OpenGDB(strGDBPath, gdbOpenExclusive Or gdbOpenReadWrite Or gdbOpenNoChgFile, "", "", "")
Set objGDBCopier = objGDBEngine.CreateGDBCopier(objGDBSrc, objGDB)
objGDBCopier.CopyLayer "имяслоя" , "имяслоя" , "имякарты" , true , false
objGDBCopier.Perform
objGDBEngine.Close()
сначала писал objGDBCopier.CopyLayer( "имяслоя" , "имяслоя" , "имякарты" , true , false )
сильно матюкался на скобки , убрал , компиляцию проходит
но говорит следующее - "Несоответствие типа CopyLayer"
Спрасибо. |
|
| | [ Николай Гипский ] Четверг, 15 мая 2008, 10:54
Ээээ. Весь саппортЪ ушел на тестирование 2.7.
Вопрос с GDBCopier так и остался. Никто не поможет случаем???
И еще заковыка появилась. Ятут по спрвке и по примерам не нашел средств для программного (COM) переименования файлов базы. Если вдруг ненароком знающий человек будет пробегать мимо и у него будет пару минуток то пусть подскажет.
Николай. |
|
| | [ ObjectLand Support ] Четверг, 15 мая 2008, 11:34
| В COM и ядре системы такого метода нет. Переименование в пользовательском интерфейсе осуществляется через вызовы Windows для переименования файлов. Только его надо делать аккуратно, проверяя возможные конфликты с именами других файлов. |
|
| | [ Alexei ] Пятница, 16 мая 2008, 14:10
| Насчет CopyLayer - этот метод вроде бы требует в качестве первого и третьего параметров объекты типа GdbLayer и GdbMap, а не имена слоя и карты. |
|
| | Копирование оформления тем [ Максим Юрьевич Трухачёв ] Суббота, 17 мая 2008, 15:28
to <Николай Гипский>
По адресу http://www.urgc.aaanet.ru/items/item1732.shtml выложена программка для копирования оформления тем из одной ГБД в другую. |
|
ОтветитьЗнаком «*» отмечены обязательные для заполнения поля. |