Параметры подключения к SDE

0 голосов
спросил 14 Ноя, 06 от Voltron (2,800 баллов) в категории Программные продукты Esri
Возможно мой вопрос и глупый... Так получилось, что недавно пришлось разбираться с SDE, причем установку и настройку проводил другой специалист, связи с которым уже  нет.
Для подключения к базе геоданных использую следующих код:

Dim pPropSet As IPropertySet
Set pPropSet = New PropertySet
With pPropSet
 .SetProperty "Server", "srv2"
 .SetProperty "Instance", 5151
 '.SetProperty "Instance","esri_sde"
 .SetProperty "database", "sde"
 .SetProperty "user", "sde"
 .SetProperty "password", "мой_пароль"
 .SetProperty "version", "sde.DEFAULT"
End With
        
Dim pWorkspace As IWorkspace
Dim pWorkspaceFactory As IWorkspaceFactory
Set pWorkspaceFactory = New SdeWorkspaceFactory
Set pWorkspace = pWorkspaceFactory.Open(pPropSet, 0)
 
При попытке внести изменения в базу из программы, выскакивает ошибка "Entry for SDE instance not found in services file". Если же не заполнять свойство "Instance", то выпадает диалоговое окно с параметрами подключения, где незаполнено поле "Service". Пробовал вместо esri_sde в свойстве Instance указывать номер порта - не помогает. Понимаю, что нужно отредактировать этот самый "services file", но где его искать и что там должно быть - не представляю. Помогите, плиз

7 Ответы

0 голосов
ответил 16 Ноя, 06 от Merkenec (1,200 баллов)

Я тоже в этом деле новичек но все же попробуй вместо "esri_sde" использовать просто "Sde" Мне помогло

0 голосов
ответил 16 Ноя, 06 от Appl (1,340 баллов)

Если используется Oracle, то стоит убрать .SetProperty "database", "sde"

0 голосов
ответил 16 Ноя, 06 от Voltron (2,800 баллов)
Merkenec
попробовал так, не помогает Unhappy. вылетает та же ошибка

2All
база крутится под MS SQL Server, для работы с картой используется ArcMap 9.1 build 722. может у кого-то есть еще какие мысли?
0 голосов
ответил 16 Ноя, 06 от Appl (1,340 баллов)
Предлагаю сперва попробовать подключиться из ArcCatalog. Если удасться - перенести параметры в программу :)
0 голосов
ответил 16 Ноя, 06 от Voltron (2,800 баллов)
Так в том-то и дело, что через Catalog все подключается без вопросов. Подключение создано, параметры прописаны --  и вперед... Именно эти параметры и используются в программе.

Видимо, я не точно выразился. Из программы тоже можно подключиться к базе, если не указывать параметр "Instance". НО, при подключении выскакивает окно в котором нужно указать сервис (т.е. порт, на котором висит SDE), после его (порта) ввода можно работать. Мне же нужно, чтобы подключение проходило "прозрачно", без каких-либо диалоговых окон, т.е все параметры должны устанавливаться программно.


0 голосов
ответил 16 Ноя, 06 от Grigoriy (127,020 баллов)
"Entry for SDE instance not found in services file" - Вы должны или прописать в файл WINDOWS\system32\drivers\etc\services на клиенте строку :
esri_sde 5151/tcp #ArcSDE for SqlServer
 
или использовать в параметрах подключения просто номер порта - по умолчанию он 5151.
Но при установке SDE могли использовать другой порт - проверьте на сервере содержимое файла %SDEHOME%\sqlexe\etc\services.sde
 
При этом ошибка должна возникать в момент подключения, а не "при попытке внести изменения в базу из программы".
 
Вот так должно работать:
 
Dim pPropSet As IPropertySet
Set pPropSet = New PropertySet
With pPropSet
 .SetProperty "Server", "srv2"
 .SetProperty "Instance", "НОМЕР_ПОРТА_В_КАВЫЧКАХ"
 .SetProperty "database", "sde"
 .SetProperty "user", "sde"
 .SetProperty "password", "мой_пароль"
 .SetProperty "version", "sde.DEFAULT"
End With
0 голосов
ответил 16 Ноя, 06 от Voltron (2,800 баллов)
Спасибо всем, кто читал/отвечал. Отдельное спасибо Григорию -- за полный и подробный ответ.
Глюк наблюдался из-за того, что номер порта прописывался без кавычек. После того, как поставил кавычки все заработало. Спасибо всем еще раз
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...