我在一家企业中工作,在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
答案 0 :(得分:1)
感谢您的评论。我目前无法发布有关异常的更多详细信息,因为我无法在我的testdatabases上重现它。它只是在野外发生异常。但我可以说它发生在(对我来说)封闭的ESRI-Dll中,我看不到dll方法的调用堆栈(OpenFromFile是ESRI-Dll中的ESRI-Method)。我想张贴这些东西,但我不能。
答案 1 :(得分:0)
它可能与你正在使用的DC库有关吗?每个版本的ArcGIS都有单独的库和每种数据库。