# JDBC/ODBC Treiber-Einbindung



## Mesturian (7. Sep 2009)

Hallo zusammen,

ich habe folgendes Problem:
ich habe vor einigen Monaten eine Anwendung geschrieben, mit der
man die interne IT-Infrastruktur erfassen, ändern, löschen usw. kann.

Verwendet wurde der SQL Server 2005 und als DB-Treiber
der JDBC Treiber 2.0.

Damals lief die Anwendung astrein. In der Zwischenzeit musste
ich allerdings den Rechner neu installieren und stehe nun wie damals
vor demselben Problem: ich schaffe es nicht, den Treiber korrekt
in das Projekt einzubinden... .

Ich hätte auch eigentlich erwartet, dass die Anwendung weiterhin funktioniert,
aber das war wohl ein Trugschluss.

Ich weiß, dass der Vorgang in vielen Quellen beschrieben wird, aber irgendwie...
naja, lassen wir das.

Also hier die Vorgehensweise:
Ich habe den "JDBC Driver 2.0" erneut herunter geladen. Da liegen jetzt im Unterordner
*sqljdbc_2.0\enu* die Jar-Dateien:
SQLDBC.JAR
SQLDBC4.JAR

Was musste ich mit diesen Dateien nochmal anstellen?
Wirklich "nur" die Aufnahme in die *CLASSPATH*-Umgebungsvariable
oder noch irgendwelche anderen Schritte.

Ich programmiere mit Eclipse und kann mich erinnern, früher ein Tool benutzt zu haben, womit man Datenbank-Anbindungen testen kann, aber das lässt sich nicht mehr installieren... .

Hier mal konkret der Code:


```
public int DBConnectionTestLoadDriver() {
	   int zustand_driver;
	   try {
		   Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
		   zustand_driver = 0;
	   }	   
	   catch(Exception ex) {
		   zustand_driver = 1;
	   }
	   return zustand_driver;
   }
   
   public int DBConnectionTestOpenDB() {
	   int zustand_open;
	   try {
		   con = DriverManager.getConnection("jdbc:odbc:sqlserver://SQL2008:1433/ConnectionTest", "TestConnection", "test");
		   zustand_open = 2;
	   }
	   catch(Exception ex) {
		   zustand_open = 3;
	   }
	   return zustand_open;
   }
```

Der erste Teil funktioniert einwandfrei, im zweiten hängt es dann... .

Grüße
Mesturian


----------



## maki (7. Sep 2009)

Die JDBCO-ODBC Krücke von Sun sollte nicht Produktiv verwendet werden, jTDS ist da um einiges besser, dadurch wird die ganze Sache auch einfacher.


----------



## Mesturian (7. Sep 2009)

Danke für die schnelle Antwort.

Habe den *JTDS_1.2.2*-Treiber geladen und die .JAR-Datei in die
neu erstellte (weil noch nicht vorhandene) CLASSPATH-Variable eingefügt.

Jetzt kriege ich in Eclipse folgende Fehlermeldung:



> java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver
> at java.net.URLClassLoader$1.run(Unknown Source)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(Unknown Source)
> ...



Ist das ein Rechteproblem, wegen des NATIVE MODES, oder was habe ich darunter zu verstehen?


----------



## maki (7. Sep 2009)

Solltest nochmals etwas über den Classpath lesen, die CLASSPATH Variable sollte nie gesetzt sein, und wenn wird sie von Eclipse ignoriert, musst die JAR Datei zum Buildpath des Projektes hinzufügen.


----------



## Mesturian (7. Sep 2009)

So funktioniert es, vielen Dank für die schnelle Hilfe! :applaus:

Hatte auch noch ein kleines User-Problem, jetzt läuft alles wieder einwandfrei.

Danke nochmal.


----------



## maki (7. Sep 2009)

Solltest di Anwendung mal durchtesten, ob alles mit den neuen JDBC Treiber nocht funzt, die ODBC Krücke ist da etwas seltsam mit dem was erlaubt ist..

Ach ja, mit dem neuen "echten" JDBC Treiber (Type 4) von jTDS brauchst du keine Datenquellen etc. mehr zu installieren, funzt auch von Linux aus


----------

