Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Delphi, Windows 64bit und Direct Oracle Access = Connection Failures (https://www.delphipraxis.net/179506-delphi-windows-64bit-und-direct-oracle-access-%3D-connection-failures.html)

ken_jones 11. Mär 2014 16:35

Delphi, Windows 64bit und Direct Oracle Access = Connection Failures
 
Diese unheilige Verbindung führt immer zu Problemen. Auch aktuell habe ich gerade wieder damit gekämpft, dass DOA in meinem neuen XE5 unter Windows 7 64bit nicht zum laufen kam. TNS Error, Connection refused, oder sonstige Fehler sind das einzige, was man zu sehen kriegt.

Das Problem ist inzwischen bekannt. Oracle kann erst ab dem 11er Client mit Pfadnamen umgehen, die Klammern beinhalten. Und da Delphi im "Program Files (x86)" installiert wird, funktioniert natürlich erst mal gar nichts.

Aber nach 2h rumprobieren mit dem neuen 11er und 12er Client muss ich sagen: Es funktioniert immer noch nicht. Und alle Applikationen in ein anderes Verzeichnis umzukopieren, dazu hatte ich keine Lust. Ich hab nun eine viel einfachere Lösung gefunden. Wer dasselbe Problem hat, dem wir hiermit wohl geholfen ;)

Davon ausgehend, dass Delphi XE5 in C:\Program Files (x86)\Embarcadero\... installiert ist, folgendes ausführen:

1. CMD als Administrator starten
2. Link erstellen mit: mklink /D "C:\Program_Files_x86" "C:\Program Files (x86)"
3. Neue Delphi Verknüpfung erstellen: Delphi XE5 Verknpüfung kopieren und den Pfad darin von ...\Program Files (x86)\Emb... auf ...\Program_Files_x86\Emb... anpassen.

Und nun läuft alles. Viel Spass und Gruss,
Ken Jones

himitsu 11. Mär 2014 16:53

AW: Delphi, Windows 64bit und Direct Oracle Access = Connection Failures
 
Zitat:

Zitat von ken_jones (Beitrag 1251574)
2. Link erstellen mit: mklink /D "C:\Program_Files_x86" "C:\Program Files (x86)"

Du könntest natürlich auch die kurzen/alten 8.3-Dateinamen verwenden. :angel:

z.B.:
C:\PROGRA~2\Embarcadero\
C:\PROGRA~2\EMBARC~1\

Code:
CD \
DIR /X

ken_jones 11. Mär 2014 17:08

AW: Delphi, Windows 64bit und Direct Oracle Access = Connection Failures
 
Oh Gott, diese Altlast gibt es ja immer noch! :vernupft:

Ja, das ist natürlich erwähnenswerte Alternative! Thx!

Bernhard Geyer 11. Mär 2014 17:13

AW: Delphi, Windows 64bit und Direct Oracle Access = Connection Failures
 
Zitat:

Zitat von ken_jones (Beitrag 1251576)
Oh Gott, diese Altlast gibt es ja immer noch! :vernupft:

Altlasten. Wohl eher Oracle-Pfusch. Oracle verwendet in Verbindungsangaben Klammern. Und wenn nun hier Oracle (bzw. die DOA-Komponenten) fehlerhafte AUswertungen implementiert haben hat das nichts mit "normalen" Altlasten von Windows zu tun.

ken_jones 11. Mär 2014 17:24

AW: Delphi, Windows 64bit und Direct Oracle Access = Connection Failures
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1251577)
Altlasten. Wohl eher Oracle-Pfusch. Oracle verwendet in Verbindungsangaben Klammern. Und wenn nun hier Oracle (bzw. die DOA-Komponenten) fehlerhafte AUswertungen implementiert haben hat das nichts mit "normalen" Altlasten von Windows zu tun.

Nicht dass wir jetzt was durcheinander bringen. Die Klammern im Pfad (was ja zum Problem führt) ist keine Altlast, die 8.3 Dateinamen schon, denn diese sind heute wohl wirklich nicht mehr nötig, zumindest unter NTFS (diese Ausnahme hier bestätigt die Regel...).
Aber dass der Pfusch bei Oracle liegt (und übrigens keineswegs bei DOA), da geh ich mit dir einig.

himitsu 11. Mär 2014 17:36

AW: Delphi, Windows 64bit und Direct Oracle Access = Connection Failures
 
In aktuellen NTFS-Versionen (Win7+) sind, so weit ich das mal gehört hab, die kurzen Pfadnamen standardmäßig deaktivIert und werden nicht mehr automatisch erstellt.
aber einige Basisverzeichnisse haben dennoch Einen, welcher oftmals durch die Verwendung einiger ANSI-APIs in alten Programmen generiert wurden.

michaelthuma 11. Mär 2014 20:51

AW: Delphi, Windows 64bit und Direct Oracle Access = Connection Failures
 
:-D Gut dass ich die IDE in Ordnern wie PF(Delphi Version Number) installiere. Danke. Dennoch gut zu wissen.

Es ist an sich ein Wunder, dass die Oracle überhaupt eine Verbindung von einem Windows Rechner zulassen :) Aber ganz entkommen tun sie halt nicht.


[QUOTE=ken_jones;1251579]
Zitat:

Zitat von Bernhard Geyer (Beitrag 1251577)
Altlasten. Wohl eher Oracle-Pfusch. Oracle verwendet in Verbindungsangaben Klammern.


Elvis 12. Mär 2014 07:31

AW: Delphi, Windows 64bit und Direct Oracle Access = Connection Failures
 
Ich erzeuge meist einen symlink namens ProgramFilesX86, der auf "Program Files(x86)" zeigt.
Wann immer ein Programmen der Hinsicht Ärger macht, ändere ich den Shortcut, so dass der Symlink genommen wird.

Sherlock 12. Mär 2014 08:19

AW: Delphi, Windows 64bit und Direct Oracle Access = Connection Failures
 
Ich verstehe gerade nicht was Oracle mit Embarcadero zu tun hat. Oracle-Installationen landen unter c:\Oracle\ - Delphi versinkt irgendwo im Programme-Sumpf. Die DOAs landen brav da mit drin. Die tnsnames.ora liegt irgendwo unter dem Oracle Pfad und macht damit auch keine Probleme. Mehr brauchen die DOAs nicht. Ich versteh die Aufregung nicht.

Sherlock

ken_jones 12. Mär 2014 08:33

AW: Delphi, Windows 64bit und Direct Oracle Access = Connection Failures
 
Zitat:

Zitat von Sherlock (Beitrag 1251623)
Ich verstehe gerade nicht was Oracle mit Embarcadero zu tun hat.

Das Problem liegt darin, dass mit Delphi und DOA keine Verbindung zu Oracle zustande kommt, solange Delphi in einem Verzeichnis mit Klammern liegt. Ich muss also Delphi verschieben, oder einen Symlink kreieren, damit das funktioniert.

Bernhard Geyer 12. Mär 2014 08:48

AW: Delphi, Windows 64bit und Direct Oracle Access = Connection Failures
 
Zitat:

Zitat von ken_jones (Beitrag 1251626)
Zitat:

Zitat von Sherlock (Beitrag 1251623)
Ich verstehe gerade nicht was Oracle mit Embarcadero zu tun hat.

Das Problem liegt darin, dass mit Delphi und DOA keine Verbindung zu Oracle zustande kommt, solange Delphi in einem Verzeichnis mit Klammern liegt. Ich muss also Delphi verschieben, oder einen Symlink kreieren, damit das funktioniert.

Ist das Problem nur mit IDE oder betrifft das auch das fertige Programm? Sprich: was passiert wernn das Programm unter C:\Program Files(x86) installiert wurde?

Sherlock 12. Mär 2014 08:49

AW: Delphi, Windows 64bit und Direct Oracle Access = Connection Failures
 
Das stimmt mit Sicherheit etwas anderes nicht. Meine Situation inklusive Angabe relevanter Pfade:
- Win 8.1 64
- Oracle Client 10.2.0.3 -> C:\oracle\product\10.2.0
- Delphi XE2 -> C:\Program Files (x86)\Embarcadero\RAD Studio\9.0
- DOA 4.1.3 -> C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\DOA

Bis vor 3 Monaten war das alles noch auf einem Win7 64 mit identischer Konstellation installiert - ohne Probleme. Ich gehe davon aus, das Du etwas anderes Falsch machst. An der grundlegenden Installation kann es nicht liegen. Ich verwende Oracle mit DOAs seit nunmehr 13 Jahren, die letzten 4 davon mit 64 Bit Windows. Mir war nie ein Problem wie Deines begegnet.

Sherlock

ken_jones 12. Mär 2014 08:52

AW: Delphi, Windows 64bit und Direct Oracle Access = Connection Failures
 
Das kann beides betreffen. Also genauer:

Die IDE, sofern sie im geklammerten Verzeichnis liegt
und das Programm, sofern dieses in einem geklammerten Verzeichnis liegen sollte.

Deshalb habe ich erst lange gesucht, da mein compiliertes EXE in "D:\Projekte\bin\xxx" lag, aber die IDE halt im "C:\Program Files (x86)".

ken_jones 12. Mär 2014 08:54

AW: Delphi, Windows 64bit und Direct Oracle Access = Connection Failures
 
Zitat:

Zitat von Sherlock (Beitrag 1251631)
Das stimmt mit Sicherheit etwas anderes nicht. Meine Situation inklusive Angabe relevanter Pfade:
- Win 8.1 64
- Oracle Client 10.2.0.3 -> C:\oracle\product\10.2.0
- Delphi XE2 -> C:\Program Files (x86)\Embarcadero\RAD Studio\9.0
- DOA 4.1.3 -> C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\DOA

Bis vor 3 Monaten war das alles noch auf einem Win7 64 mit identischer Konstellation installiert - ohne Probleme. Ich gehe davon aus, das Du etwas anderes Falsch machst. An der grundlegenden Installation kann es nicht liegen. Ich verwende Oracle mit DOAs seit nunmehr 13 Jahren, die letzten 4 davon mit 64 Bit Windows. Mir war nie ein Problem wie Deines begegnet.

Sherlock

Dein Exe wird wahrscheinlich schon funktionieren. Aber in der IDE läuft die Connection auch? Und deine Verknüpfung zur IDE beinhaltet einen Pfad mit Klammern? (Also nicht die 8.3 Pfadangabe)?

/edit: Ist übrigens mit anderen Programmen auch so: TOAD kann im Program Files (x86) auch keine Verbindung zu Oracle herstellen.

Sherlock 12. Mär 2014 08:57

AW: Delphi, Windows 64bit und Direct Oracle Access = Connection Failures
 
Verknüpfung...aha. Ich probier mal eben. Also kleines Testprogramm, daß auf Oracle per DOAs zugreift hatte ich eben in "C:\Program Files (x86)\testung" abgelegt und eine Verknüpfung dorthin aufm Desktop ausgeführt. Kein Problem.
In der IDE habe ich ohnehin zur Designzeit immer schon DB-Zugriff, und gestartet wird die freilich über eine Verknüpfung. Direkt gestartet geht ohnehin auch.

Ich stehe vor einem Rätsel...

Edit: Auch der TOAD macht ühüüüberhaupt keine Probleme bei mir.

Sherlock

ken_jones 12. Mär 2014 09:07

AW: Delphi, Windows 64bit und Direct Oracle Access = Connection Failures
 
Zitat:

Zitat von Sherlock (Beitrag 1251635)
Auch der TOAD macht ühüüüberhaupt keine Probleme bei mir.

Spannend. Ich hab das Problem auf allen Geräten, und auch bei Oracle ist der Bug bekannt:

Bug 3807408 - CANNOT EXTERNALLY AUTHENTICATE USER WITH QUOTE IN USERNAME

Ah, moment, da hab ich was gefunden:

Code:
Download and install Oracle 32-Bit Patch Number 5383042. This patch fixes Oracle Bug 3807408:
Externally authenticated usernames containing a '(',')' or '=' cannot be authenticated, additionally if a program name / path contains these characters, it may not be possible to connect (ORA-12154).
Und du hast ja 10.2.0.3, ich hab 10.2.0.1 !! Ich teste das heute Nachmittag mal... (Darüber reden hilft manchmal :-D)

Sherlock 12. Mär 2014 09:13

AW: Delphi, Windows 64bit und Direct Oracle Access = Connection Failures
 
Bitte poste obs daran lag! :)

Sherlock

ken_jones 12. Mär 2014 10:06

AW: Delphi, Windows 64bit und Direct Oracle Access = Connection Failures
 
Yeah!

Es funktioniert!

Was hab ich gemacht:
- Patch Installiert (hob meine Installation von 10.2.0.1 auf 10.2.0.3), musste jedoch ein neues Verzeichnis wählen, da der Patcher sonst rumgemuckt hat.
- DOA OracleSession -> Preferences -> OraHome und OCIDLL auf neuen Pfad gesetzt (neu Client_2 statt Client_1)
- tnsnames.ora in den Client_2 kopiert

Fertig! Nun läuft es auch unter "Program Files (x86)"!!

Danke und Grüsse aus Luzern!

Sherlock 12. Mär 2014 10:28

AW: Delphi, Windows 64bit und Direct Oracle Access = Connection Failures
 
Gratuliere!

Zitat:

Zitat von ken_jones (Beitrag 1251670)
- DOA OracleSession -> Preferences -> OraHome und OCIDLL auf neuen Pfad gesetzt (neu Client_2 statt Client_1)

Da hab ich nie was tun müssen. Das peilen die DOAs doch ganz von alleine. :gruebel: Ach ne, das geht ja über die Reihenfolge in der %PATH% Variablen.

Sherlock


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz