2009-09-01 7 views
0

Я работаю над проектированием, созданием и поддержкой пользовательских приложений на базе ESRI ArcGIS. Некоторые клиенты используют Direct Connect для подключения к базам данных, хранящимся на Oracle или MS SQLServer. У меня есть проблема с автономным приложением в течение нескольких месяцев.Использование прямого подключения к базам данных ArcGIS в автономных приложениях

У меня есть приложение, написанное на Delphi. Одна из первых вещей, которые я делаю, конечно, открывает рабочее пространство.

pWorkspaceFactory:= CoSdeWorkspaceFactory.Create as IWorkspaceFactory; 
pWorkspaceFactory.OpenFromFile('D:\directconnect.sde', WndHandle, pWorkspace); 

Это прекрасно работает для всех «нормальных» коннекторов, в некоторых случаях прямое соединение работает нормально тоже. Но может случиться, что я получаю в другой базе данных stackoverflow при вызове OpenFromFile. Повышение MaxStackSize в проектах проекта проекта delphi заставило его работать с некоторыми базами данных Direct Connect. Но это не работает для всех.

Кто-нибудь знает, как правильно обращаться с прямыми подключениями в автономных приложениях, без ArcMap? Доступ к базам данных в ArcMap никогда не был проблемой, я думаю, что ArcMap имеет специальную обработку для прямых подключений.

Спасибо за все идеи и ответы. Пусть ответ будет с вами ;-)

Привет

Warheart

+0

Я не могу ответить на вопрос, но у меня есть предложение по поводу вопроса. Не могли бы вы добавить дополнительную информацию о переполнении стека, пожалуйста? Какой код он использует - обращается ли OpenFromFile к вашему коду, или он исключительно в их? Если вы посмотрите на стек вызовов, что происходит? (Например, рекурсивное или просто гигантское дерево вызовов?) Просто говорят, что переполнение может не помочь, если вы не ищете ответа, который вообще не требует использования кода. –

ответ

1

Спасибо за ваш комментарий. Я не могу публиковать более подробные сведения об исключении на данный момент, потому что я не могу воспроизвести его в своих тестовых базах данных. Только в дикой природе происходит исключение. Но я могу сказать, что это происходит в (для меня) закрытом ESRI-Dll, я не вижу стек вызовов методов dlls (OpenFromFile - это ESRI-метод в ESRI-Dll). Я бы хотел опубликовать такие вещи, но я не могу.

0

Может ли это иметь какое-то отношение к библиотеке DC, которую вы используете? Существуют отдельные библиотеки для каждой версии ArcGIS и каждый вкус базы данных.