# Datenquellname bzw. kein Standardtreiber



## Blindxantos (21. Jun 2011)

Hallo.

Trotz langem suchen und einigen Versuchen, mir selbst zu helfen, muss ich leider doch einen Beitrag posten...
Ich möchte einfach nur eine Connection zu einer Access-db (.mdb) erstellen.


```
private void connectDB() {
		try {
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
		} catch (ClassNotFoundException e1) {
			System.out
					.println("ClassNotFound-Exeption beim Aufbau der Connection zur DB!");
			e1.printStackTrace();
		}
		try {
			con = DriverManager
					.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=\\src\\server\\Verwaltung.mdb");
		} catch (SQLException e) {
			System.out
					.println("SQL-Exeption beim Aufbau der Connection zur DB!");
			e.printStackTrace();
		}
	}
```
Der Code oben wirft folgende Fehlermeldung:

```
SQL-Exeption beim Aufbau der Connection zur DB!
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben
	at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
	at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
        .....usw.
```


Was ich bereits versucht habe:

-Absolute Pfadangabe der Datenbank

-Unter "C:\Windows\SysWOW64\odbcad32.exe" die Accesstreiber hinzugefügt. Ich habe den MS Access Driver (*.mdb, *.accdb) sowie den MS Access-Treiber (*.mdb). (der englische war schon da, den deutschen hab ich hinzugefügt (wenn ich mich richtig erinnere))

-Unter "C:\Windows\system32\odbcad32.exe" stehen die gleichen wie oben.

ABER: Wenn ich nun einen der oben genannten konfigurieren möchtet, kommt folgende Fehlermeldung:
*Die Setup-routinen [...bla...] nicht gefunden, treiber erneut installieren.*
Danach erscheint die Information:
*Der angegebene DSN weist eine nicht übereinstimmende Architektur von Treiber und Anwendung auf.*


Nachtrag:
Laut einer Seite kann man diese Treiber nicht extra runterladen..


> Solution
> Apparently, we use the utility for 32bit config.ODBC to run:
> 
> c:\windows\syswow64\odbcad32.exe
> ...


Wo würd ich denn einstellen, dass er nicht als 64-Bit-Maschine compiliert? Das würd ich mal probieren..

Oder aber, gibt es noch andere Lösungen?

EDIT: Ich hab btw Win7 Professional 64-Bit


----------



## Blindxantos (21. Jun 2011)

> Connecting to a Data Source in Access 2007 Format
> 
> To access an Access 2007 data source, the OLE DB connection manager requires the OLE DB provider for the Microsoft Office 12.0 Access Database Engine. This provider is installed automatically with the 2007 Microsoft Office system. If the 2007 Office system is not installed on the computer on which Integration Services is running, you have to install the provider separately. To install the OLE DB provider for the Microsoft Office 12.0 Access Database Engine, download and install the components on this Web page, 2007 Office System Driver: Data Connectivity Components.


How to: Connect to an Access Database Da hab ich grad AccessDatabaseEngine.exe runtergeladen und installiert, hat aber nicht geholfen..

Als nächstes werd ich mal Office 2007 neu installieren..



Zum Beitrag oben ist noch zu sagen:


> -Unter "C:\Windows\SysWOW64\odbcad32.exe" die Accesstreiber hinzugefügt. Ich habe den MS Access Driver (*.mdb, *.accdb) sowie den MS Access-Treiber (*.mdb). (der englische war schon da, den deutschen hab ich hinzugefügt (wenn ich mich richtig erinnere))


dort tritt keine fehlermeldung auf, wenn ich auf konfigurieren klicke



> -Unter "C:\Windows\system32\odbcad32.exe" stehen die gleichen wie oben.
> 
> ABER: Wenn ich nun einen der oben genannten konfigurieren möchtet, kommt folgende Fehlermeldung:
> Die Setup-routinen [...bla...] nicht gefunden, treiber erneut installieren.
> ...


hier tritt die fehlermeldung wie beschrieben auf.


----------



## maki (21. Jun 2011)

Hast du es mal mit einem lokalen Pfad probiert?
Kann sein dass die [c]\\[/c] Ärger machen.

Ansonsten ist dir klar dass die JDBC-ODBC nicht produktiv verwendet werden sollte?
War nie mehr als eine Demo als eine keine "echten"JDBC Treiber gab...


----------



## Blindxantos (21. Jun 2011)

hallo.
danke für deine antwort erstmal.

Ich hab grad extra nochmal den absoluten und relativen Pfad ausprobiert, auch in verschiedenen Varianten, allerdings ohne Erfolg. Die Datenbank liegt im gleichen Package wie die Klasse, aber selbst wenn der relative Pfad nicht richtig sei, der absolute müsste ja funktionieren - eigentlich.

Hmm, den JDBC-ODBC haben wir in der Ausbildung so kennen gelernt, und auch in Internet bin ich auf einige dieser Beispiele gestoßen. Allerdings wird uns einiges "veraltetes" beigebracht..
Ich bin durch google auf "JDBC-Type-4-Treiber" gestoßen? Wenn der "ok" ist, dann les ich mich da mal kurz ein.

Liebe Grüße


----------



## maki (21. Jun 2011)

Wie hast du den absoluten Pfad denn angebenen?
In Java muss ein [c]\[/c] als [c]\\[/c] maskiert werden, da es sonst als Steuerzeichen interpretiert wird, d.h. dass ein Pfad der mit 2 Bacjslahses beginnt, als [c]\\\\[/c] geschrieben werden muss.

Solltest imho von Access die Finger lassen, nimm H2, HSQL, Derby/JavaDB, etc. pp., all diese RDBMS bieten Type 4 Driver an.


----------



## Blindxantos (21. Jun 2011)

```
\\src\\server\\Verwaltung.mdb
C:\\Users\\Jonas\\Dropbox\\MSE-Projekt\\Javacode\\src\\server\\Verwaltung.mdb
```
Gibt jedes mal die gleiche Fehlermeldung, wie im ersten Beitrag beschrieben.

Auf eine andere Datenbank würd ich umgern umsteigen, wenn ich es gar nicht zum laufen bekomme, steig ich auf Textdateien um...:bahnhof:


----------



## Blindxantos (22. Jun 2011)

Tja also ich bin es nochmal. *Es liegt definitiv nicht am Pfad*, bei meinem Projektpartner tritt ne andere Fehlermeldung auf..

Es liegt bei mir vermutlich am Access Driver und 64-Bit. Wenn ich in system32 driver hinzufügen möchte, hab ich keine, auser SQL Server.. (siehe bild)

Wie man das problem löst weiß ich nicht, die 64-Bit Driver hab ich durch MS Office bekommen, aber ich hätte gern die 32-Bit-Version - nur woher?!


----------



## Blindxantos (22. Jun 2011)

> Click on Start > Control Panel > Use the drop-down-menu > Click on "All Control Panel Items" > Administrative Tools > Here you use the mouse curser to highlight Data Sources (ODBC ) and then you right-click on it. You click on "Run as Administrator" > Click on "Properties" > Security > Edit > Advanced > Here you have to turn on or simply "tick" all boxes under "Allow" except "Special Permissions" which should be left unchecked. Then confirm by "Apply" ,"OK" "Apply" "OK" to close everything. Now you can click on the Data Sources(ODBC) and under "Drivers" you will find everything there. Hurray!!!!!


funktioniert noch nicht, aber immerhin hab ich jetzt vollzugriff auf odbcad32.exe




> I'm using Win7 64bit. I was also using a JDK 64bit.... however, JDK 64 bit cannot work with dll developed for 32bit applications (like the ODBC drivers provided with Win7).
> 
> Therefore, it has been sufficient to use the standard JDK x86 for using the DB correctly (e.g., by using the path of the DB).


Aha, also liegt es evtl. am 64-Bit-JDK.
Nachtrag: Nein, daran liegt es vermutlich nicht. Mein Projektpartner hat auch JDK 64..



> The complete solution is:
> 
> 1) Download/run mdac_typ.exe (MDAC 2.8) from Microsoft Download Center. This will provide all the 32-bit ODBC drivers you are looking for. There's no need to install/re-install/modify MS Access.
> 
> ...


nein, funktioniert auch nicht.

No ODBC Drivers available for Excel or Access in Windows 7 ?! - Microsoft Answers


ich hab keine lust mehr  ich arbeite jetzt ohne DB...
	
	
	
	





```
private void loadVector() {
		alleKlassen.addElement("Fi10");
		alleKlassen.addElement("Fi11");
		alleKlassen.addElement("Fi12");

		alleLehrer.addElement("Hr. A");
		alleLehrer.addElement("Fr. B");

		alleRaeume.addElement("101");
		alleRaeume.addElement("102");
		alleRaeume.addElement("103");

		System.out.println("Vectoren erfolgreich gefüllt! Server funktionsbereit!");
	}
```


----------

