Hallo,
ich habe ein Problem mit einer Verbindung zu einer Oracle9i-Server.
Unsere Zentrale hat uns einen Rechner (Win2k) ins Büro gestellt, auf dem eine Oracle-Datenbank läuft. Diese Datenbank wird dann jede Nacht aktualisiert.
Auf dem Rechner läuft ein Programm, mit dem man sich dann die Daten anschauen kann (Bestellungen).
Die Berechtigungen auf dem Rechner sind so eingeschränkt, dass man keine anderen Programme starten kann (Explorer o.ä).
Das ist eine sehr unbefriedigende Situation und ich als Feierabend-Progger wollte mich mal der Sache annehmen.
Ich habe mir ein Analyse-Tool besorgt (Keeptool7). Bei diesem Tool gebe ich IP, DB-Name und User+Passwd an und es stellt eine Verbindung zu dieser DB her, d.h. ich kann mir die Tabellen und Inhalte anschauen.
Nun machte ich mich an die Programmierung (mit C#) und bekomme aber keine Verbindung hin.
Ich habe folgendes versucht:
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
conn.ConnectionString="Provider=OraOLEDB.Oracle;" +
"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.101)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=Best)));"+
"User ID=dbuser;" +
"Password=dbpasswd;";
conn.Open();
Ich bekomme eine OleDbException->"ORA-12514: TNS:listener does not currently know of service requested in connect descriptor"
Wie bekomme ich die Connection (anders) hin???
Denn eine Connection muss ja möglich sein, da sonst auch das Db-Tool auf meinem Rechner sich nicht verbinden könnte.
Vielen Dank...
Du solltest die Klassen aus System.Data.OracleClient verwenden, anstatt OleDb.
Probier mal folgendes
System.Data.OracleClient conn = new System.Data.OracleClient();
conn.ConnectionString="Provider=OraOLEDB.Oracle;" +
"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.101)(PORT=1521)))(CONNECT_DATA=(SID=Best)));"+
"User ID=dbuser;" +
"Password=dbpasswd;";
conn.Open();
Wenn man's nicht gleich sieht: Im Connection-String geändertes CONNECT_DATA-Statement