Witam,
mam pytanie donośnie obiektu ResultSet. Mianowicie po połączniu sie z bazą danych oraz wywołaniu funkcji executeQuery chciałbym wiedzieć ile wierszy zostało zwróconych. Czy ktoś może podpowiedzieć jak to zrobić? Z gory dziekuje za pomoc
rs.last();
int ile = rs.getRow();
Obie użyte metody (last(), getRow()) mogą być nieobsługiwane przez sterownik.
Jeszcze zalezy o jaki typ ResultSeta pyta - metoda last()nie jest obslugiwane dla typu jest TYPE_FORWARD_ONLY, a domyslnie wlasnie taki jest zwracany.
Panowie,
używam sterownika ojdbc14. Ustawiłem ResultSet na TYPE_SCROLL_SENSITIVE i niestety lipa. Dostaje następujący wyjątek:
java.sql.SQLException: Niepoprawna operacja dla zestawu wyników "tylko do przesłania" : last
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162)
at oracle.jdbc.driver.BaseResultSet.last(BaseResultSet.java:86)
Nie mam juz pomysłu jak zliczyć ile wierszy mi wyrzuciła kwerenda. Bardzo proszę o pomoc.
Krokus napisał(a):
Panowie,
używam sterownika ojdbc14. Ustawiłem ResultSet na TYPE_SCROLL_SENSITIVE i niestety lipa. Dostaje następujący wyjątek:
java.sql.SQLException: Niepoprawna operacja dla zestawu wyników "tylko do przesłania" : last
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162)
at oracle.jdbc.driver.BaseResultSet.last(BaseResultSet.java:86)
Nie mam juz pomysłu jak zliczyć ile wierszy mi wyrzuciła kwerenda. Bardzo proszę o pomoc.
ResultSet resultSet = statement.executeQuery(polecenieSQL);
java.sql.ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
int columnCount = resultSetMetaData.getColumnCount();
Przelec przez wszystkie zwrocone rekordy i inkrementuj jakąs zmienną:
int i;
ResultSet rs = stmt.executeQuery (query);
while (rs.next ()) {
i++;
}
System.out.println("Zapytanie zwrocilo" + i + " rekordow" );
korzystasz z tych zwróconych danych ? czy tylko trzeba Ci ilość wierszy?
Jeśli to drugie to można i tak:
SELECT COUNT(*) FROM <table_name>;