2009-09-01 12 views
0

Ich arbeite in einem Unternehmen, das benutzerdefinierte Anwendungen auf der Basis von ESRI ArcGIS entwickelt, erstellt und verwaltet. Einige Kunden verwenden Direct Connect, um eine Verbindung zu Datenbanken herzustellen, die auf Oracle oder MS SQLServer gespeichert sind. Ich habe seit einigen Monaten ein Problem mit einer eigenständigen Anwendung.Verwenden von Direct Connect-Zugriff auf ArcGIS-Datenbanken in eigenständigen Anwendungen

Ich habe eine Anwendung, in Delphi geschrieben. Eines der ersten Dinge, die ich mache, ist natürlich das Öffnen des Arbeitsbereichs.

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

es funktioniert auch in einigen Fällen der direkten Verbindung Dies funktioniert für alle „normalen“ Connects in Ordnung,. Es kann jedoch vorkommen, dass ich beim Aufruf von OpenFromFile einen Stackoverflow in einer anderen Datenbank erhalte. Durch das Erhöhen der MaxStackSize-Größe in den Projektoptionen des Delphi-Projekts funktionierte es in einigen Direct Connect-Datenbanken. Aber es funktioniert nicht für alle.

Kennt jemand den richtigen Weg, Direct Connects in Standalone-Anwendungen ohne ArcMap zu handhaben? Der Zugriff auf die Datenbanken in ArcMap war nie ein Problem, ich denke, ArcMap hat eine spezielle Handhabung für Direct Connects.

Danke für alle Ideen und Antworten. die Antwort kann man mit ;-)

Grüße

Warheart

+0

Ich kann die Frage nicht beantworten, aber ich habe einen Vorschlag zu der Frage. Könnten Sie bitte weitere Informationen zum Stapelüberlauf hinzufügen? In welchem ​​Code ist der Code enthalten - ruft OpenFromFile den Code zurück oder ist er nur in seinem Code enthalten? Wenn Sie sich den Call-Stack anschauen, was passiert? (ZB rekursiv, oder einfach eine gigantische Call-Struktur?) Einfach zu sagen, dass es überläuft, kann nicht wirklich helfen, es sei denn, Sie suchen nach einer Antwort, die nicht ihren Code überhaupt verwendet. –

Antwort

1

Vielen Dank für Ihren Kommentar. Ich kann im Moment keine weiteren Details über die Ausnahme veröffentlichen, weil ich sie nicht in meinen Testdatenbanken reproduzieren kann. Es ist nur draußen in der Wildnis die Ausnahme auftritt. Aber ich kann sagen, dass es in einer (für mich) geschlossenen ESRI-Dll passiert, ich kann den Call-Stack der dlls-Methoden nicht sehen (OpenFromFile ist eine ESRI-Methode in einer ESRI-Dll). Ich würde gerne solche Dinge veröffentlichen, aber ich kann nicht.

0

Könnte es etwas mit der von Ihnen verwendeten DC-Bibliothek zu tun haben? Für jede Version von ArcGIS und für jede Datenbankaromatik gibt es separate Bibliotheken.