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

COMException was unhandled На найден объект [

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



Зарегистрирован: 20.06.2012
Сообщения: 3
Откуда: Уфа

СообщениеДобавлено: Ср 20 Июн 2012 14:18    Заголовок сообщения: COMException was unhandled На найден объект [ Ответить с цитатой

Прошу помощи. в строке results = ..... возникает данная ошибка. При дебаге LayersObject и results содержат ObjectID постоянно одни и те же.
Код:
  Dim LayersObject As IIngeoMapObjectsQuery = ingeoApp.ActiveDb.MapObjects.QueryByLayers("0010000017F8")
       

        While (Not LayersObject.EOF)
            results = ingeoApp.ActiveDb.MapObjects.QueryByObject("0010000017F8", LayersObject.ObjectID, 1, 1)
            'If (results Is Nothing) Then
            '    ListBox1.Items.Add(LayersObject.ObjectID)

            'End If

            LayersObject.MoveNext()


        End While


подробнее об ошибке
Цитата:
System.Runtime.InteropServices.COMException was unhandled
ErrorCode=-2147418113
Message=На найден объект [
Source=""
StackTrace:
at Ingeo.IIngeoMapObjects.QueryByObject(Object aLayerIDs, String anObjectID, TIngeoContourRelation aRelationMask, TIngeoContourRelation aRelation)
at streets_1.Form1.FindStreets_Click(Object sender, EventArgs e) in D:\Documents and Settings\User\my documents\visual studio 2010\Projects\streets_1\streets_1\Form1.vb:line 45
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(ApplicationContext context)
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
at streets_1.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:
[/code]
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
APopov



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

СообщениеДобавлено: Ср 20 Июн 2012 15:39    Заголовок сообщения: Ответить с цитатой

1) скажите, в чем суть алгоритма?
2) как объявлена переменная results?
попробуйте отлаживаться в режиме "release" (хоть это и звучить абсурдно)

_________________
ОАО "Самара-Информспутник",
инженер-программист Попов Артем


Последний раз редактировалось: APopov (Чт 21 Июн 2012 17:07), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Timur



Зарегистрирован: 20.06.2012
Сообщения: 3
Откуда: Уфа

СообщениеДобавлено: Ср 20 Июн 2012 15:49    Заголовок сообщения: Ответить с цитатой

APopov писал(а):
1) скажите, в чем суть алгоритма?
2) как объявлена переменная results?
попробуйте отлащиваться в режиме "release" (хоть это и звучить абсурдно)


1) поиск объектов которые не пересекаются в заданном слое
2) Dim results As IIngeoMapObjectsQuery
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
APopov



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

СообщениеДобавлено: Чт 21 Июн 2012 17:15    Заголовок сообщения: Ответить с цитатой

видимо объект пересекает сам себя, просто игнорируйте во втором запросе ИД опорного объекта.
я писал только на vbScript, поэтому спрошу :
может быть тут обязательно нужно использовать Set:
set results = ingeoApp.ActiveDb.MapObjects.QueryByObject...

и еще замечание, Из документации насчет MapObjects:
Цитата:
Каждое получение ссылки на этот объект начинает новую транзакцию. При последнем освобождении ссылки на этот объект транзакция завершается. Таким образом чтобы какая-либо последовательность действий над объектами происходила внутри одной транзакции, надо ссылку на этот объект сохранить в переменной. Потом через эту ссылку произвести последовательность действий. После чего освободить ссылку.

рекомендую ingeoApp.ActiveDb.MapObjects запомнить в какуюнить переменную, это ускорит работу.

_________________
ОАО "Самара-Информспутник",
инженер-программист Попов Артем
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
andreichernov



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

СообщениеДобавлено: Чт 21 Июн 2012 17:16    Заголовок сообщения: Ответить с цитатой

попробуйте set в начале напишите
set results = ingeoApp.ActiveDb.MapObjects.QueryByObject("0010000017F8", LayersObject.ObjectID, 1, 1)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Timur



Зарегистрирован: 20.06.2012
Сообщения: 3
Откуда: Уфа

СообщениеДобавлено: Чт 21 Июн 2012 23:22    Заголовок сообщения: Ответить с цитатой

проблема решилась (спасибо тех поддержке)
Основной косяк в среде программирования VB.NET express 2010.
да и на VBS все работает.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков Часовой пояс: GMT + 5
Страница 1 из 1

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


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