# jdbc ResultSet  types



## javahoush (4. Jan 2010)

hallo leute,

folgender code:


```
DatabaseMetaData dbmd = ...
ResultSet rs = dbmd.getColumns(dbmd.getCatalogTerm(), null, null,null);
```

Soweit sogut. Das Problem ist, wie setze ich beim ResultSet rs jetzt den Typ auf "TYPE_SCROLL_INSENSITIVE"? Ich möchte nämlich in diesem Resultset hin- und hernavigieren.


----------



## Tobias (4. Jan 2010)

So:



			
				ResultSet-Dokumentation hat gesagt.:
			
		

> A default ResultSet object is not updatable and has a cursor that moves forward only. Thus, you can iterate through it only once and only from the first row to the last row. It is possible to produce ResultSet objects that are scrollable and/or updatable. The following code fragment, in which con  is a valid Connection object, illustrates how to make a result set that is scrollable and insensitive to updates by others, and that is updatable. See ResultSet fields for other options.
> 
> Statement stmt = con.createStatement(
> ResultSet.TYPE_SCROLL_INSENSITIVE,
> ...


----------



## javahoush (4. Jan 2010)

hallo,

das funktioniert nicht. 
getColumns() liefert mir ein ResultSet zurück.

Es ist nicht so, dass ich ein Statement erzeuge, um eine Query abzusetzen, um letztlich ein Resultset zu bekommen - das würde wie unten beschrieben funktionieren.

aber das resultset, dass ich von getColumns bekomme - wie kann ich das beeinflussen.

gruß,
harald


----------



## Tobias (4. Jan 2010)

Das wird ziemlich sicher nicht funktionieren. Absolute Gewissheit kann hier aber nur ein Blick in den Quellcode bieten (und das auch nur für den jeweiligen JDBC-Treiber).

Edit: Eventuell kann man was mit ResultSet#setFetchDirection() machen, aber auch das wird auf jeden Fall den Code JDBC-Treiber-abhängig machen!


----------



## javahoush (4. Jan 2010)

hallo tobias,

danke für die antwort.
Ja, hatte setFetchDirection() auch schon ausprobiert. Bringt leider unter Derby nicht die erwünschte Wirkung. Bekomme immer noch ne Exception.

Hast du ne Idee fürnen Workaround? Mir fällt im Mom. nicht viel ein - irgendwie muss es doch aber gehen.

gruß,
harald


----------



## Tobias (4. Jan 2010)

Naja, du könntest das ResultSet einmal iterieren und die ausgelesenen Daten in eine eigene Datenstruktur speichern, auf der du dann wie gewünscht arbeiten kannst. Lohnt natürlich nur, wenn die Informationen zumindest zu einem großen Teil auch tatsächlich gebraucht werden.


----------

