# JDBC-ODBC: Alle ODBC-Datenquellen ermitteln?



## radi (26. Mrz 2005)

Hallo Ihr Wissenden,   

ich möchte gerne alle Datenquellen (Datenbanken) eines Systems ermitteln für die eine ODBC-Verbindung eingerichtet wurde. Später soll man dann eine dieser Datenbanken auswählen können, zu der dann eine Verbindung hergestellt wird.

Durchwühle nun schon seit einigen Stunden das Netz, aber konnte noch nichts finden. Vielleicht habt Ihr eine Idee. Habe so was schon in einigen Anwendungsprogrammen gesehen, also sollte es zumindest prinzipiell möglich sein.

Vielen Dank schon mal! Viele Grüße,

radi

PS: [schild=1]Musste mal diesen Smilie ausprobieren! Schick. [/schild]


----------



## abollm (26. Mrz 2005)

Na ja, das mit den Wissenden ist alles relativ.

Willst du das auf einem Windows-Rechner machen?

Wenn ja, stellst du dir das dann so vor, dass du z.B. in einer Auswahlbox alle verfügbaren ODBC-Datenquellen mit allen Treibern (z.B. MS-Access, Oracle) angezeigt erhältst?


----------



## radi (27. Mrz 2005)

Hallo,

ja, das soll auf einem Windows Rechner laufen. Eigentlich würde es reichen, wenn ich die Namen der Datenbanken habe für die eine ODBC-Verbindung eingerichtet wurde. Den Namen würde ich dann nutzen, um die Verbindung herzustellen, nachdem sich der Nutzer für eine Datenbank entschieden hat. Die Treiber benötige ich eigentlich nicht, da mich nur Datenbanken interessieren für die eine ODBC Verbindung (z.B. über die Systemsteuerung) eingerichtet wurde. Ich würde dann den JDBC-ODBC Treiber benutzen.

Irgendwoher muss doch eine Liste zu bekommen sein, für welche Datenbanken eine ODBC-Verbindung eingerichtet wurde? Vielleicht vom ODBC-Treiber selbst?

Vielen Dank schonmal!

MfG,

radi

[schild=7 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Frohe Ostern![/schild]


----------



## abollm (27. Mrz 2005)

Nach meiner Kenntnis kannst du das nur mit Java-Bordmitteln nicht erreichen. Java verwaltet weder DBen noch Treiber, sondern Verbindungen zu DBen. Sofern es nicht irgendein Tool gibt, mit dem du die Liste der DSNs ermitteln kannst, wirst du mit reinem Java wohl wenig Erfolg haben.

Alternativ kannst du entweder mit JNI oder dem Befehl Runtime.exec() arbeiten. Unter Windows würde die zweite Variante dann so aussehen (Wert für %SystemRoot% entsprechend anpassen):

```
...
Runtime.getRuntime().exec(%SystemRoot%\system32\odbcad32.exe);
...
```

Hth


----------



## radi (27. Mrz 2005)

Hi,

danke, danke.

Den Eindruck, dass man das mit Java Bordmitteln nicht erreichen kann, habe ich inzwischen auch. Ich versuchs mal mit den anderen Varianten. Falls ich was erreiche, halte ich Euch auf dem Laufenden!

Viele Grüße,

radi


----------

