JDBC/ODBC Treiber

tinella

Erfahrenes Mitglied
hi Leute

vll. kann mir jemand helfen:
ist es möglich, dass man einen treiber zweimal laden muss, wenn man zwei abfragen auf zwei unterschiedliche accessdatenbanken startet?

ich hab in meinem projekt zwei accessdatenbanken, von denen ich je eine abfrage starte.
ganz am anfang loade ich den
Code:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
treiber einmal, um danach nacheinander die verbindung zur jeweiligen db zu erstellen. dann starte ich die eine abfrage und danach die andere.

das prob ist nur, dass es die erste abfrage von der ersten db problemlos durchführt und dann bei der zweiten einen fehler ausgibt. es gibt keinen richtigen fehler aus, ich kann nicht rausfinden was es für ein problem gibt. deshalb hab ich mir jetzt gedacht, dass was mit dem treiber nicht stimmt?

kennt jmd von euch viell. sowas? dass man für jeden datenbankzugriff einen neuen treiber laden muss?


vielen dank im vorraus..

gruss,
tinella
 
Nein.
-----------------------------------------------------------------------------------------------------------
Eine Treiber-Klasse (sun.jdbc.odbc.JdbcOdbcDriver) ist etwa so aufgebaut:

Code:
public class MyDriver {
 
static {
  //...tut irgendwas
}
 
//...weiterer Code außerhalb des "static"-Blocks
}
Aus diesem Grund kannst Du mit dem Aufruf mit "Class.forName(...)" diesen Treiber laden.

Da Du mit JDBC-ODBC-Treiber-Brücke arbeitest, kannst Du die Verbindung zur 2. Access-Datenbank ebenfalls über diesen Treiber aufbauen.

CU schnuffie ;)
 
Hallo!

wie Schnuffi schon sagte werden static {...}
Blöcke beim Laden der Klasse ausgeführt ... bei dem JdbcOdbcDriver wirds wohl so sein, das sich der im Static Block selbst beim DriverManager registriert und somit eine weitere Registrierung überflüssig macht.

Gruß Tom
 
Zurück