Объясните разницу при создании связи

0 голосов
спросил 26 Сен, 08 от Dorofeev1 (6,460 баллов) в категории Программные продукты Esri
Здравствуйте! Недавно столкнулся с проблемой программного создания связи, которую не могу решить   image . При попытке программно создать связь между фичей и записью в связанной таблице через IRelatioshipClass.CreateRelationship, возникает ошибка. Фич класс находится в датасете, таблица вне датасета. Если я пытяюсь создать связь между двумя фичами в датасете , ошибок не возникает. Как временное решение, получилось открывать классс связи как таблицу и напрямую записывать индексы. Но , этот меня не устраивает, потому что в таком случае информация о связях в ArcMap обновляется только при сохранении результатов редактирования.image

Подскажите пожалуйста как корректно создавать связь между фичами в фичклассах датасета и записями в таблицах вне датасета

4 Ответы

0 голосов
ответил 26 Сен, 08 от sschainik (4,900 баллов)
У меня нормально создается связь
Function CreateRelationship(OriginObject As IObject, DestinationObject As IObject) As IRelationship

Может объекты OriginObject и DestinationObject не те?
я лбычно еще дополнительно прверяю IRelationship.OriginClass и OriginObject.Calss (IFeature.Class) ну м второй объект тоже
0 голосов
ответил 26 Сен, 08 от Dorofeev1 (6,460 баллов)
Объекты те(я проверял 10 раз).Проблема именно в том, что таблица лежит вне датасета, в котором лежит фич класс, с которым создается связь.
0 голосов
ответил 30 Сен, 08 от tntman (1,360 баллов)
Попробуй через MemoryRelationshipClass
0 голосов
ответил 12 Окт, 08 от Dorofeev1 (6,460 баллов)
Бок был в том что я получал объект IRow через IQueryDef. Трабл решен. Тему в корзину image
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...