Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Ruslan
Зарегистрирован: 14.02.2008 Сообщения: 2
|
Добавлено: Чт Фев 14, 2008 8:41 am Заголовок сообщения: Использование функции AddDatabaselink |
|
|
Столкнулись с тем что в DGN размножились
мслинки.Решил программку написать чтобы "передёрнуть" мслинки.
Sub main
Dim кes As Long
Dim en as ElementEnumerator
Dim el as Element
Dim dbls() As DatabaseLink
Dim dblnew as DatabaseLink
Set en=ActiveModelReference.GetSelectedElements
Do While en.MoveNext
Set el=en.Current
if el.HasAnyDatabaseLink(msdDatabaselinkageOdbc,1) then
dbls=el.GetDatabaseLinks(msdDatabaselinkageOdbc,1)
Set dblnew=dbls(0)
res=el.RemoveDatabaselink(msdDatabaselinkageOdbc,dbls(0).mslink,1)
эВот до этого места работает
el.AddDatabaselink(dblnew) ' вот тут останов с сообщенем что нет такого метода у объекта
el.Rewrite
end if
end sub |
|
Вернуться к началу |
|
|
Tonal
Зарегистрирован: 10.05.2007 Сообщения: 11
|
Добавлено: Чт Фев 14, 2008 9:02 am Заголовок сообщения: |
|
|
Привеи Руслан.
Скорее всего, при RemoveDatabaselink исходный объект просто уничтожается, а ты пытаешся его потом на место пришпандорить.
Думаю, что надо его пересоздать с теми же параметрами, например:
Код: |
Set dblnew=CreateDatabaseLink dbls(0).Mslink, dbls(0).EntityNumber, dbls(0).DatabaseType, dbls(0).IsInformation, dbls(0).DisplayableAttributeType
|
Ну а сообщение об ошибке - просто некорректное - у MicroStation оно сплошь и рядом при работе с Automation.
Последний раз редактировалось: Tonal (Чт Фев 14, 2008 9:46 am), всего редактировалось 1 раз |
|
Вернуться к началу |
|
|
Ruslan
Зарегистрирован: 14.02.2008 Сообщения: 2
|
Добавлено: Чт Фев 14, 2008 9:35 am Заголовок сообщения: |
|
|
Tonal писал(а): | Привеи Руслан.
Скорее всего, при RemoveDatabaselink исходный объект просто уничтожается, а ты пытаешся его потом на место пришпандорить.
Думаю, что надо его пересоздать с теми же параметрами, например:
Код: |
Set dblnew=CreateDatabaseLink dbls(0).Mslink, dbls(0).EntityNumber, dbls(0).DatabaseType, dbls(0)..IsInformation, dbls(0)..DisplayableAttributeType
|
Ну а сообщение об ошибке - просто некорректное - у MicroStation оно сплошь и рядом при работе с Automation. |
Tonal, спасибо! Точно не в этом дело.
Я ведь когда столкнулся вообще код упростил. Оставил только добавление, а в исходной выборке один центроид.
Дебаггер перед этой строукой показывает что и dblnew нормально создан.
Вот потому сюда и постучался |
|
Вернуться к началу |
|
|
Tonal
Зарегистрирован: 10.05.2007 Сообщения: 11
|
Добавлено: Чт Фев 14, 2008 9:56 am Заголовок сообщения: |
|
|
Какая разница, сколько там центроидов - у них вообще Automation исключительно криво написан.
Так что просто попробуй мой код - если ошибки не будет - стало быть так и есть. |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group
|