Autor Beitrag
delphijanka
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151

WinXP
D 2009 Arc., Java, C
BeitragVerfasst: Mi 08.12.10 15:03 
ORA-12545: Connect failed because target host or object does not exist

Hallo.

Diese Fehlermeldung bekomme ich seit heute, wenn ich eine Verbindung zu der Datenbank aufbauen möchte.
Dabei geschieht der Zugriff aus SQL Developer heraus oder aus NetBeans problemlos, nur in Delphi klappt es nicht.
Gestern noch konnte ich die Verbindung aufbauen. Dann hat sich wahrschinelich vlcht was geändert (System-Admin-Änderungen etc..), was zu dem genannten Problem führen könnte.

Dabei nutze ich ADO-Connection-Klasse. Dem übergeb ich im ConnectionString den Provider, die DataSource und natürlich den Benutzer mit Passwort. Als DataSource übergebe ich die SID der Datenbank / des Datenbankschemas.

Brauche dringend Hilfe. Ohne Connection keine Arbeit möglich. :((
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Mi 08.12.10 15:18 
Ich würde sagen, da hat einer die TNSNames kaputtgespielt. Jedenfalls ist ein durchgedrehter ITler immer der Grund, wenn ich diesen Fehler sehe ;)

Geht denn ein Connect mit richtigem ConnectString, also Host/Port/Instance direkt angegeben?

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
delphijanka Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151

WinXP
D 2009 Arc., Java, C
BeitragVerfasst: Mi 08.12.10 15:25 
@Martok

Erstmal Danke für die Antwort. Ich habe keine Ahnung, wie ich die Data Source dem ADO Connecter richtig (=syntaktisch) mitteilen soll. Habe versucht, der gibt mir die Message, dass TNS Resolving nicht klappte. Kannst du mir ein Beispiel für Data Source - Eingabe geben?
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Mi 08.12.10 15:35 
Hi - ahja, da sagt er es dann also auch mal an was los ist :roll:

Ich muss mal gucken, irgendwo hab ich eine Funktion, die den ConnectString baut. Mal sehen, ob die auf einer Platte ist die ich grade erreiche ;)
Ich editiers dann hier rein.

EDIT: Ich hab zwar eine Version von dem Programm hier - aber nicht die letzte. Die, die ich hier habe hatte noch tnsnames.ora benutzt.
Dafür hab ich das hier aus Google gefischt, wobei ich mir bei dem (SERVER=DEDICATED) nicht so sicher bin, ob man das braucht, ggf. also mal Handbuch lesen:
ausblenden Quelltext
1:
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)))					


Der Ausdruck wäre dann deine data source=....
Alternativ geht das auch in EZ-Connect-Syntax, aber da gabs irgend einen Haken dran. Ich weiß nur nicht mehr welchen. Also, neben der Tatsache dass es erst seit Ora 10 existiert :(

Das Ganze führt dann dazu, dass keine Auflösung mehr über TNS gemacht wird, sondern man direkt Host(-namen) und Port wissen muss. Meistens weiß man die ja, ist aber halt weniger komfortabel und vor allem schlechter wartbar. Unbedingt aus einer Konfigurationsdatei lesen sowas!
Ein Tutorial was ich grad gefunden hatte hat folgendes geschrieben:
If that happens, check with your Oracle Database Administrator to verify the name of your Host File, your User Name and Password.

Wenn die Firma klein genug ist kannst du ja mal versuchen rauszufinden wer da was warum geändert hat. Ab ner gewissen Größe ist das aber eher schwierig, da muss man dann eher mit den Konsequenzen leben ;)

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
delphijanka Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151

WinXP
D 2009 Arc., Java, C
BeitragVerfasst: Mi 08.12.10 16:54 
Das hat geklappt. Danke!
jaevencooler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 166
Erhaltene Danke: 6

MS-DOS,Win32, Win95, Win 98, Me,XP, Linux, NT4.0, NT 2000-2008, Vista, Windows 7
Turbo Pascal,D1 Enter,D2 Enter,D3 Enter,D5 Enter, Kylix, D2007, PL/SQL, MS/SQL, Delphi 2010, Delphi XE
BeitragVerfasst: Mi 08.12.10 17:30 
Moin,


nur zur Info zum Thema EZCONNECT:


1.) LogonDatabase := 'MeineIP:1521/MeinSID' , wobei 1521 der Standard Port von Oracle ist, kann auch anders konfiguriert werden.
2.) EZCONNECT Option in der sqlnet.ora eintragen (NAMES.DIRECTORY_PATH property)

das muss aber auf jeden Client gemacht werden, es sein denn die sqlnet.ora liegt irgendwo zentral.
Wenn du eine Beispiel Datei brauchst, dann sach Bescheid....

oder alternativ:

LogonDatabase := (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = MyServer)(PORT = 1521)))(CONNECT_DATA = (SERVICE_NAME = MyDB)))

mein Favorit....



Beste Grüße
Michael

_________________
Wissen ist Macht, nichts wissen macht auch nichts...