0

私は企業で、ESRI ArcGIS に基づいてカスタム アプリケーションを設計、作成、および保守しています。一部のお客様は、Direct Connect を使用して、Oracle または MS SQLServer に保存されているデータベースに接続しています。ここ数か月、スタンドアロン アプリケーションで問題が発生しています。

Delphi で書かれたアプリケーションがあります。もちろん、私が最初に行うことの 1 つは、ワークスペースを開くことです。

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

これはすべての「通常の」接続で正常に機能し、場合によっては直接接続でも正常に機能します。しかし、OpenFromFile を呼び出すと、別のデータベースでスタック オーバーフローが発生することがあります。Delphi プロジェクトのプロジェクト オプションで MaxStackSize を上げると、一部の Direct Connect データベースで動作するようになりました。しかし、それはすべての人にうまくいくわけではありません。

ArcMap を使用せずに、スタンドアロン アプリケーションで Direct Connects を処理する正しい方法を知っている人はいますか? ArcMap でデータベースにアクセスすることは決して問題ではありません。ArcMap には Direct Connects に対する特別な処理があると思います。

すべてのアイデアと返信に感謝します。答えがあなたと共にありますように;-)

ご挨拶

ウォーハート

4

2 に答える 2

1

コメントありがとうございます。テストデータベースで例外を再現できないため、現時点では例外の詳細を投稿できません。例外が発生するのは野外でのみです。しかし、(私にとっては)閉じたESRI-Dllで発生すると言えます。dllメソッドの呼び出しスタックが表示されません(OpenFromFileはESRI-DllのESRIメソッドです)。そんなことを投稿したいのですが、投稿できません。

于 2009-09-09T07:12:06.210 に答える
0

使用している DC ライブラリと何か関係があるのでしょうか? ArcGIS の各バージョンとデータベースのフレーバーごとに個別のライブラリがあります。

于 2009-10-28T18:14:12.087 に答える