Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Falsches Connectstring zu Oracle 11g? (https://www.delphipraxis.net/170053-falsches-connectstring-zu-oracle-11g.html)

fly_singapore 28. Aug 2012 13:18

Datenbank: Oracle 11g • Version: R2 • Zugriff über: SQLConnection

Falsches Connectstring zu Oracle 11g?
 
Hallo Allerseits,

leider habe ich Probleme mich an meiner Oracle 11g (lokal) zu Verbinden.. Ich meine es liegt am Connectionstring. Über den Objektinspektor kann ich die Verbindung zum Testen aufbauen, nur im Programmcode macht er noch Probleme:


Delphi-Quellcode:
procedure TWinForm.Button1_Click(sender: System.Object; e: System.EventArgs);

var
  dt: DataTable;
  rw: Datarow;

  connStr, OraConnStr, cSQLStr: System.string ;
  conn: SQLConnection;
  ds: Dataset;
  da: SQLDataAdapter;
  cWert: string;

  cOperator , cError: string;
  // Variablen für Connectionstring
  cDataSource, cdatabase, cUser, cPassword : string;




  begin

        OraConnStr := 'user id=System;data source=OTDB;persist security info=False'  ;


conn := SQLConnection.Create(OraconnStr);                             // Connection-Objekt erzeugen
ds := Dataset.Create;                                              // Dataset-Objekt erzeugenc

SQLStr := 'SELECT * FROM AUD$ ' ;                  // SQL-Abfrage definieren


da := SQLDataAdapter.Create(cSQLStr, conn);                        // DataAdapter-Objekt erzeugen

  try

  conn.Open;
  da.fill(ds,'tbl_ot_journal');
  conn.Close();

....
Der Debugger geht bis

Delphi-Quellcode:
conn.Open;
... dann bleibt die Programmausführung hängen

Eine Probeverbindung zu seinen MS SQL-Server läuft ohne Probleme...

s.h.a.r.k 28. Aug 2012 13:26

AW: Falsches Connectstring zu Oracle 11g?
 
Wenn das Programm hängen bleibt, dann tippe ich eher auf einen Timeout, d.h. du gibst ein falsches Ziel an. Es wird dann soweit ich weiß 30 Sekunden gewartet und dann bekommst du eine enstprechende Fehlermeldung. Warte doch mal mindestens so lange und schau, was für eine Fehlermeldung kommt.

Hier erfährst du relativ viel über den Connection String zu einer Oracle Db.

Was mir noch einfallen würde:
- Hat der Nutzer System kein Passwort?
- Vielleicht auf Groß- und Kleinschreibung achten? (weiß nicht, ob es an sowas liegen kann)
- Ist ein entsprechender Eintrag in der lokalen tnsnames.ora?

PS: Formatier doch mal einen Source-Code. Das ist ja ein Graus das lesen zu müssen.

Bernhard Geyer 28. Aug 2012 13:29

AW: Falsches Connectstring zu Oracle 11g?
 
hast du auch halbweg aktuelle ADO.NET-provider von Oracle? Die von MS sind schrott bzw. schon seit längerer Zeit abgekündigt und die von Oracle haben wenn sie zu alt sind problem auf aktuelle Oracle-Versionen zuzugreifen.

fly_singapore 28. Aug 2012 13:59

AW: Falsches Connectstring zu Oracle 11g?
 
Hallo Shark und Bernhard Geyer,

ich habe den auf der Web-Seite http://www.connectionstrings.com/oracle Beispiel übernommen, den mit meinen Werten abgeänderten Werten in dem Programmcode eingesetzt... Nichts passierte.. Delphi hängte weiter ohne Fehlermeldung.

Wenn man jetzt eine neuere ADO-Version bekommen könnte.. wie mach ich dies? Oder muss ich mir nun eine neue Delphiversion anschaffen (lassen)?

Tja, die formatierung des Codes.. Den habe ich einfach reinkopiert und dabei hat sich was verschoben...

s.h.a.r.k 28. Aug 2012 14:11

AW: Falsches Connectstring zu Oracle 11g?
 
Hast du das mit den 30 Sekunden gelesen und getestet?

Und meine anderen Vorschläge? Umgesetzt? Getestet?

fly_singapore 28. Aug 2012 14:22

AW: Falsches Connectstring zu Oracle 11g?
 
Klar...

nein, leider kommt auch nach 30 sec keine Fehlermeldung...
MMH, das alles ist sehr merkwürdig. Ich probiere es noch mal mit MySQL um mal zu sehen, wie da Delphi reagiert..

Nochmal die Frage: Wie kann ich eine neue ADO-Fassung implementieren... Wie bekomme ich die.. oder muss ich letztens Endes doch auf einere neue Delphi-Versión zurückgreifen

s.h.a.r.k 28. Aug 2012 14:49

AW: Falsches Connectstring zu Oracle 11g?
 
Zitat:

Zitat von fly_singapore (Beitrag 1180338)
Hallo Allerseits,

leider habe ich Probleme mich an meiner Oracle 11g (lokal) zu Verbinden.. Ich meine es liegt am Connectionstring. Über den Objektinspektor kann ich die Verbindung zum Testen aufbauen, nur im Programmcode macht er noch Probleme:

Es würde mich echt wundern, wenn es an der ADO-Version liegt, nachdem es in der IDE selbst scheinbar funktioniert. Dann müsste er zur Laufzeit ja auf andere Treiber zurückgreifen und das halte ich für unwahrscheinlich.

Jumpy 28. Aug 2012 15:48

AW: Falsches Connectstring zu Oracle 11g?
 
Muss man nicht noch 'nen Provider angeben, bei mir schaut's so aus mit ADO+ODBC:

Code:
v:=DBNAME_ODBC;

t:='Provider=MSDASQL.1;'+
   'Persist Security Info=False;'+
   'User ID=' +';'+
   'Data Source='+ v +';'+
   'Password=';

//oder nur ADO:

t:='Provider=OraOLEDB.Oracle.1;'+
   'Persist Security Info=False;'+
   'User ID= ' + UserName(v) +';'+
   'Data Source= '+DBNameNonODBC(v) +';'+
   'Password=' + '';

Bernhard Geyer 28. Aug 2012 15:56

AW: Falsches Connectstring zu Oracle 11g?
 
Zitat:

Zitat von fly_singapore (Beitrag 1180346)
ich habe den auf der Web-Seite http://www.connectionstrings.com/oracle Beispiel übernommen, den mit meinen Werten abgeänderten Werten in dem Programmcode eingesetzt... Nichts passierte.. Delphi hängte weiter ohne Fehlermeldung.

WElchen Provider?

Zitat:

Zitat von fly_singapore (Beitrag 1180346)
Wenn man jetzt eine neuere ADO-Version bekommen könnte..

Du verwendest doch WinForms und damit doch ADO.NET, oder?

Übrigens: Winforms bzw. generell ist für die Delphi-IDE der .NET-Teil gestorben. Hat man nicht vernünftig hin bekommen.
Willst du bei .NET bleiben so musst du nach Oxygen wechseln wenn du bei Delphi bleiben willst.

p80286 28. Aug 2012 17:34

AW: Falsches Connectstring zu Oracle 11g?
 
Dir ist klar das das so garnicht funktionieren kann?
du nutzt abwechselnd cSQLStr und SQLSTR überprüf mal bitte Deinen Code.

Und was ADO angeht, benutz doch mal eine ADO-Connection, und bau den String im OI auf. Wenn Du das Passwort speichern läßt sollte es eigentlich funktionieren.
Dann hast du auch gleich einen fertigen ConnectionString.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:18 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