ResultSet getRow

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Ich habe ein ResultSetMetaData, welches mir die columns mit getColumnCount liefert! Nun benötige ich aber noch aus einem ResultSet die Informationen für die Anzahl der Zeilen. Ich dachte, dies geht mit getRow, tuts aber nicht. Ich habe dann getFetchSize ausprobiert.....auch nichts! Hat jemand von Euch eine Idee? Hier ein bisschen Code:

Code:
 rSet = pst.executeQuery(); 
            
 ResultSetMetaData rSetmeta = rSet.getMetaData();     	
 int columns = rSetmeta.getColumnCount();	            //Anzahl der Spalten
 int rows = rSet.getRow();			       //Anzahl der Zeilen      
 table = new String [columns][rows];	   //Array initialisierung
			
 int j = 0;	
 while (rSet.next())						     
{						   		
	for ( int i = 0; i < columns; i++ )		
	{
	String field = rSet.getString(i+1);	//Daten aus ResultSet holen
	table[j][i] = field;				//Array füllen
	}
  j++; 													
}
 
Habe eine Lösung gefunden:

Code:
rSet.last(); //Springe zur letzten Zeile
int rows = rSet.getRow(); //Anzahl der Zeilen auslesen   
rSet.beforeFirst(); //Springe wieder an den Anfang

Nur schmeisst er ne Fehlermeldung:
Ungültiger Vorgang bei Nur-Weiterleiten-Ergebnismenge: last

Kann da einer was mit anfangen?
 
Nach API:
SQLException - if a database access error occurs or the result set type is TYPE_FORWARD_ONLY


Aber warum nimmst du nicht einfach ne ArrayList? Dann musst du dich nicht drum kümmern wie viele Zeilen dein ResultSet hat.
 
Damit du die oben geannte Fehlermeldung weg bekommst, musst du das Statement fürs ResultSet folgendermaßen instanzieren:
Code:
      Statement stm = con.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE,
                                           ResultSet.CONCUR_UPDATABLE );
[/code]
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben