ADO.net und mehrer (verschiedene) Oracle Clients

XChris

Erfahrenes Mitglied
Hallo, kann mir wer sagen, wie ich mehrere Clients unter .net verwalte?

Ich möchte die Cients (Oracle 8 und 9) über den .net Configurator bereitstellen. Das muss irgendwie gehen .... das irgendwie interessiert mich. Offensichtlich kann man nur EINEN Client via .net ansprechen. Aber ich hab das Problem, dass meine Anwendung auf Ora 9 aufsetzt - andere .net Programme (nicht von uns) aber NUR mit Ora 8.x laufen. Auch besteht keine Chance, die anderen Programme auf den neueren Client zu heben.

Ich brauch also eine Möglichkeit, mehrer verschiedene Ora Clients unter .net zu verwalten und zu nutzen.

Für ne Antwort wär ich echt dankbar.

Chris
 

Norbert Eder

Erfahrenes Mitglied
Du sprichst hier von unterschiedlichen Providern nehm ich mal an.

Aber vielleicht kannst du mir etwas von deiner Architektur verraten. Wodurch ergibt sich das Problem? Hast du einen selbst geschriebenen Server (der auf die Datenbank zugreift) und die Clients verbinden sich zu deinem Server, um sich eben Daten zu holen oder Daten an den Server zwecks Speicherung weitergeben?

Wenn dem so ist, dann brauchst du eigentlich nur eine Methode finden, wie du die Clients unterscheiden kannst (Client A versteht Oracle 9, Client B versteht Oracle 8). Dann brauchst du eigentlich nur zwei Connections einrichten (einmal auf die 8er und einmal auf die 9er) und kannst so den Client auf die richtige Connection lenken, um die Abfrage auszuführen.
 

XChris

Erfahrenes Mitglied
Norbert Eder hat gesagt.:
Du sprichst hier von unterschiedlichen Providern nehm ich mal an.

Jain.
Das ist wohl auch nen Bezeichnungsproblem. Ich rede von dem OracleClient über den man letztendlich - mit was auch immer - auf Oracle zugreift. Nicht zu verwechslen mit dem Provider dann unter .net.
Ich möchte also mit dem .net Treiber auf den Oracle Client 9 steuern.

Aber vielleicht kannst du mir etwas von deiner Architektur verraten. Wodurch ergibt sich das Problem? Hast du einen selbst geschriebenen Server (der auf die Datenbank zugreift) und die Clients verbinden sich zu deinem Server, um sich eben Daten zu holen oder Daten an den Server zwecks Speicherung weitergeben?

Das ist eigentlich Trival. Das Programm in Punkto Ora Zugriff ist echt 0815. Es gibt keine ServerApp. Sondern nur einige Clients.
Also mein Programm ist ein FatClient der von irgendwo auf die Oracle DB direkt zugreift. Ohne das es noch einen zentralen Programmserver gibt. Also so richtig der 0815 Standartfall.

Jedoch gibt es mehrer verschiedene Programm auf dem Client. (Mit dehnen ich nix am Hut habe) Dazu kommt, dass viele dieser Programm mit unterschiedlichen DB's arbeiten. Unter anderem auch mit Oracle 8x.
Meine Anwendung nutzt die 9er. Und genau das ist mein Problem. Ich will unter .net nicht gezwungen sein 8 ODER 9er zu nutzen. So wies aussieht hat MS einfach vergessen, dass man mehrere Provider für den Zugriff (nur Oracle - mit MySQL z.B. via ODBC.net no problem) nutzen kann.

Wenn dem so ist, dann brauchst du eigentlich nur eine Methode finden, wie du die Clients unterscheiden kannst (Client A versteht Oracle 9, Client B versteht Oracle 8). Dann brauchst du eigentlich nur zwei Connections einrichten (einmal auf die 8er und einmal auf die 9er) und kannst so den Client auf die richtige Connection lenken, um die Abfrage auszuführen.

Es ist sogar noch trivialer. Ich WEISS welchen Client ich nutzen will und ich brauch für mein Programm nur die eine Connection ...

Chris
 

XChris

Erfahrenes Mitglied
Hab grad meinen Text gelesen und denke es ist schwer zu verstehen. Deswegen hier mal Problembeschreibung von ner anderen Seite:

* Man hat einen Server mit Oracle 8
* Man hat einen Server mit Oracle 9
* Man haten einen Client PC

Nun schreibt man eine Anwendung die .net nutzt und Ora8 nutzt.
Nun schreibt man zweite Anwendung die .net nutzt und Ora9 nutzt.

Beide Anwendungen sollen auf ein und dem selben PC laufen auf ein und dem selben Framework. Mit einder anderen Datenbank als Oracle und seinem "tollem" Treiber "null problem".

Chris
 

Norbert Eder

Erfahrenes Mitglied
Ich versteh dein Problem noch immer nicht ganz.

Bringst du keine Verbindung zur Oracle zusammen? Oder kannst du dich nicht zur 8er UND zur 9er mit EINER Anwendung verbinden?
 

XChris

Erfahrenes Mitglied
Norbert Eder hat gesagt.:
Ich versteh dein Problem noch immer nicht ganz.
Bringst du keine Verbindung zur Oracle zusammen?

Doch. Verbindung ist da. Jederzeit.

Oder kannst du dich nicht zur 8er UND zur 9er mit EINER Anwendung verbinden?

Vorweg: Es geht mir nicht darum, dies in EINER Anwendung zu tun. Aber auch das wäre nicht möglich.
Es geht mir draum, dass das Framework es bei Oracle scheinbar nicht ermöglicht, dass ich mehrer Oracle Treiber supporte.

Wenn ich oracle 8 Client installiere und Oracle 9 Client installiere sehe ich keine Möglichkeit mit EINEM oder (in meinem Fall) mehreren unter .net entwickelten Programmen zu arbeiten.
Also Programm A soll auf Ora8 und GLEICHZEIT ein anderes Programm auf Oracle 9.


Chris
 

Norbert Eder

Erfahrenes Mitglied
Für Oracle gibts auch .NET Provider. Verwendest diese? Denn dann musst ja die herkömmlichen Oracle-Treiber nicht installieren, oder täusch ich mich da jetzt. Der .NET Provider kann ja die unterschiedlichen Oracle Versionen. Sollte also nicht das Problem sein.

Folgende Provider stehen zur Auswahl:
http://www.microsoft.com/downloads/...29-17DC-45EA-BFB3-076D1C052524&displaylang=en
http://www.oracle.com/technology/tech/dotnet/index.html

Und am besten mal die Whitepaper von Oracle durchlesen.
 

XChris

Erfahrenes Mitglied
Norbert Eder hat gesagt.:

... und GENAU das ist mein Problem!

Ich kann die bisher genutzten Provider (Mircosoft) nicht ändern, da nicht wir diese Programme geschrieben haben.
Ich kann nur EINEN Provider definieren. Wehe dem, der mit einem Provider 2 verschiedene Oracle Versionen ansprechen muss - das geht nehmlich nicht und wenn man 2 Provider definiert, greifen BEIDE trotzdem auf nur ein und den selben oracleclient zu ...


Keine Chance. Ich kann bei den bestehenden Programmen das nicht tauschen ...

Chris