我在一家企业工作,负责设计、创建和维护基于ESRI ArcGIS的自定义应用程序。一些客户使用Direct Connect连接到存储在Oracle或MS SQLServer上的数据库。我对一个独立的应用程序已经有几个月的问题了。
我有一个用Delphi写的应用程序。当然,我要做的第一件事就是打开工作区。
pWorkspaceFactory:= CoSdeWorkspaceFactory.Create as IWorkspaceFactory;
pWorkspaceFactory.OpenFromFile('D:\directconnect.sde', WndHandle, pWorkspace);这适用于所有“普通”连接,在某些情况下,直接连接也适用。但在调用OpenFromFile时,我可能会在不同的数据库上获得堆栈溢出。在delphi项目的项目选项中增加MaxStackSize,使得它可以在一些专线数据库上工作。但它并不是对所有人都有效。
有没有人知道在没有ArcMap的情况下,在独立应用中处理专线的正确方法?在ArcMap中访问数据库从来都不是问题,我认为ArcMap对直接连接有特殊的处理方式。
感谢所有的想法和回复。愿答案与你同在;-)
问候
战心
发布于 2009-09-09 07:12:06
感谢您的评论。我现在不能发布更多关于这个异常的细节,因为我不能在我的测试数据库中重现它。只有在野外才会发生例外情况。但我可以说,它发生在(对我来说)封闭的ESRI-Dll中,我看不到Dll方法的调用堆栈(OpenFromFile是ESRI-Dll中的ESRI-Method )。我很想张贴这样的东西,但我不能。
发布于 2009-10-29 02:14:12
会不会与你正在使用的DC库有关?对于每种版本的ArcGIS和每种风格的数据库,都有单独的库。
https://stackoverflow.com/questions/1362326
复制相似问题