# Seltsamer Fehler



## Echinus (16. Mai 2008)

Hi,

ich erhalte folgenden Fehler:


> #
> # An unexpected error has been detected by Java Runtime Environment:
> #
> #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7c911010, pid=2472, tid=2208
> ...



Mein Code sieht so aus:

```
String DRIVER   = "sun.jdbc.odbc.JdbcOdbcDriver";
		String PROTOCOL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="; //PROTOCOL + DB-Variable = Url
		String USER     = "";
		String PASS     = "";
		
		//Verbindung zur DB herstellen
		try
		{
			Class.forName(DRIVER);
		}
		catch(ClassNotFoundException e)
		{
			System.err.println( "Keine Treiber-Klasse!" );
		}
		
		Connection con = null;
		
		try
		{
			con = DriverManager.getConnection(PROTOCOL+vw.dat.db.getAbsoluteFile(), USER, PASS);
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
		finally
		{
			if (con!=null)
				try{ con.close();} catch(SQLException e){e.printStackTrace();}	
		}

		
		//Vereinstabelle in DB leeren
		try
		{
			System.out.println(PROTOCOL+vw.dat.db.getAbsoluteFile());
			Statement stmt = con.createStatement();
			stmt.executeQuery("DELETE FROM `clubs`");
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}		
...
```

Was läuft da schief?
Ich dachte zuerst es würde an meinem Rechner liegen, aber auf einem anderen ist genau des selbe Fehler aufgetreten.

Danke schonmal


----------



## RoNa (16. Mai 2008)

Hallo,

Du bekommst den Fehler wahrscheinlich in Zeile 20.

Da ist irgendwas mit dem Datenbanktreiber nicht OK. Der aktuelle Thread kann nicht auf die dll zugreifen. 

Bekommst Du den Fehler, wenn Du andere DB benutzt? Versuch mal Derby oder MySQL.

Robert


----------



## Echinus (16. Mai 2008)

Wenn ich Zeile 37 und 38 auskommentiere funktioniert es.
Also entsteht der Fehler wohl dort.

Ich hab auch schon die genannte DLL mal ausgetauscht - ohne Erfolg.

Aber am Treiber kann es eigentlich auch nicht liegen - ein anderes Programm was ich vor einiger ZEit geschrieben habe basiert auch auf Access-DBs (mit dem gleichen Treiber) und das funktioniert!


----------



## maki (16. Mai 2008)

Wann werden Leute endlich aufhören Access und die JDBC-ODBC Bridge zu verwenden? Ist beides Schrott...


----------



## Echinus (16. Mai 2008)

Was sollte man den stattdessen verwenden?


----------



## maki (16. Mai 2008)

MySQL ist doch schon empfohlen worden... Die JDBC/ODBC Bridge war nie dafür gedacht Produktiv verwendet zu werden, ist uralt und war nie mehr als 'ne Demo als es noch keine reinen Java JDBC Treiber gab(1999?).Wie kommen Leute immer noch darauf sie herzunehmen?


----------



## Echinus (16. Mai 2008)

Leider bin ich auf Access angewiesen.
Das Programm ist ein Zusatzprogramm zu einem anderen, welches nunmal Access verwendet - leider.


----------



## maki (16. Mai 2008)

Tja, dann wirst du noch viel Spass mit Access und der JDBC-ODBC Krücke haben.


----------



## RoNa (16. Mai 2008)

Hallo,

dann versuche die Programmzeilen in einem try-Block auszuführen. Aus welchem Grund auch immer wird dort eine Exception geschmissen und die Connection wird geschlossen.

Ansonsten guck Dir Derby an. Die DB kannst Du super in Java-Anwendungen integrieren und es ist kostenlos. Der neue Name ist JavaDB. Es wird bei 1.6 mit ausgeliefert.

Viel Spaß.

Robert


----------



## Echinus (16. Mai 2008)

Wie immer saß das Problem mal wieder vor dem Bildschirm!
Ich habe ein Teil des Codes aus einem anderen Projekt rauskopiert und dabei übersehen, dass in Zeile 29 die Verbindung geschlossen wird!
Folglicherweise (und richtigerweise) entsteht dann (in Zeile 37) ein Fehler, weil versucht wird die Verbindung nochmal zu nutzen!

TRotzdem Danke


----------



## Opeseesoicype (20. Jun 2008)

Hey, 

Have You seen new movie with angelina ?


----------

