# Java SQL-Exception bei Zugriff auf MSAccess



## sg181 (29. Sep 2005)

Hallo Leute.

Habe zwei Methoden für den Zugriff auf meine MSAccess Datenbank:


```
String getStringValue(String tabelle, String wert, long ID)
{
	String s = "";
	try
	{
		rs = stm.executeQuery("SELECT " + wert + " FROM " + tabelle + " WHERE ID = " + ID);
		s = rs.getString(wert);
//                            s = rs.getString(0);
	}
	catch (SQLException e)
	{
		System.out.println("SQL-Exception: getValue()");
		e.printStackTrace();
		return "";
	}
	return s;
}
	
long getLongValue(String tabelle, String wert, long ID)
{
	long l = 0;
	try
	{
		rs = stm.executeQuery("SELECT " + wert + " FROM " + tabelle + " WHERE ID = " + ID);
		l = rs.getLong(wert);
//                            l = rs.getLong(0);
	}
	catch (SQLException e)
	{
		System.out.println("SQL-Exception: getValue()");
		return 0;
	}
	return l;
}
```

Bei der aktiven Version getXXX(wert) erhalte ich eine Exception: Ungültiger Cursorstatus
Bei der kommentierten Version getXXX(0) erhalte ich eine Exception: Ungültiger Deskriptorindex

Die Datenbankfelder sind zum einen ein Long Integer, zum anderen ein Memo.

Wo liegt der Fehler?

Zudem hab ich noch eine Frage:
ich richte mir nicht unter Datenquelle (ODBC) in der Systemverwaltung eine Verbindung zur Datenbank ein, sonder erzeuge sie so:


```
con = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver(*.mdb)};DBQ=.\\database.mdb","","");
```

Hab ich dadurch einen Nachteil?

Danke schon mal
sg181


----------



## Bleiglanz (29. Sep 2005)

was ist mit rs.next();


----------



## sg181 (29. Sep 2005)

Tatsächlich, so gehts!

Wieso kann ich denn nicht nur auf die erste Zeile des ResultSets zugreifen?
Wie würde ich das denn machen?

edit: vergesst die Frage, war ein Denkfehler meinersteits.
Wie mach ich denn das Häkchen an den Thread?


----------

