# Warum kommt eine Exception bei instanceof ?



## Rilly (14. Jan 2008)

Hallo, 

ich habe ein Problem und finde die Ursache nicht. 
Ich durchlaufe mein Resultset und will mit instanceof den Datentyp bestimmen.

```
if (rs.getObject(i) instanceof Integer) {
						ausi = rs.getInt(i);
						row[i - 1] = ausi;
						found = true;
					}
```

rs.getObject(i) ist zu diesem Zeitpunkt ein Stringwert, welchen ich auch überprüft habe und müsste somit einfach zur nächsten instanceof Abfrage weiterspringen, allerdings wird hier folgende Exception geworfen.

```
java.sql.SQLException: No data found
	at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcResultSet.getObject(Unknown Source)
```
Hat hier jemand eine Idee, wäre supi!!

VG, Rilly


----------



## Niki (14. Jan 2008)

```
Object o = rs.getObject(i);
if (o instanceof Integer) {
    ausi = (Integer)o;
    row[i - 1] = ausi;
    found = true;
}
```

Zur Erklärung, kopiert aus der API-Doc:



> The ResultSet interface provides getter methods (getBoolean, getLong, and so on) for retrieving column values from the current row. Values can be retrieved using either the index number of the column or the name of the column. In general, using the column index will be more efficient. Columns are numbered from 1. For maximum portability, result set columns within each row should be read in left-to-right order, and each column should be read only once.


----------



## Rilly (14. Jan 2008)

hmm, danke leider kommt trotzdem die Fehlermeldung, ist mir echt unverständlich.


----------



## Niki (14. Jan 2008)

Machst du vorher ein resultSet.next();
Wenn nicht, solltest du das machen. Der Cursor befindet sich am Anfang *vor* der ersten Zeile, mit next positionierst du ihn in die erste Zeile und kannst mit get auf die Spalteninhalte zugreifen.


----------



## Rilly (14. Jan 2008)

Nein vielen Dank es funktioniert, hatte nur eine Abfrage vergessen umzustellen.

VG, Rilly


----------

