在独立应用程序中使用Direct Connect访问ArcGIS数据库

时间:2009-09-01 12:53:31

标签: oracle delphi stack-overflow arcgis arcgis-server

我在一家企业中工作,在ESRI ArcGIS的基础上设计,创建和维护自定义应用程序。一些客户使用Direct Connect连接到存储在Oracle或MS SQLServer上的数据库。我现在有几个月的独立应用程序有问题。

我有一个用Delphi编写的应用程序。当然,我做的第一件事就是打开工作区。

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

这适用于所有“普通”连接,在某些情况下直接连接也可以正常工作。但是,当调用OpenFromFile时,我可能会遇到一个不同的数据库堆栈溢出。在delphi项目的项目选项中提升MaxStackSize使其适用于某些Direct Connect数据库。但它并不适用于所有人。

有没有人知道在没有ArcMap的情况下在独立应用程序中处理直接连接的正确方法?在ArcMap中访问数据库从来都不是问题,我认为ArcMap对Direct Connects有一个特殊的处理。

感谢您的所有想法和回复。愿答案与你同在; - )

问候

warheart

2 个答案:

答案 0 :(得分:1)

感谢您的评论。我目前无法发布有关异常的更多详细信息,因为我无法在我的testdatabases上重现它。它只是在野外发生异常。但我可以说它发生在(对我来说)封闭的ESRI-Dll中,我看不到dll方法的调用堆栈(OpenFromFile是ESRI-Dll中的ESRI-Method)。我想张贴这些东西,但我不能。

答案 1 :(得分:0)

它可能与你正在使用的DC库有关吗?每个版本的ArcGIS都有单独的库和每种数据库。