Result set is TYPE_FORWARD_ONLY

Como resolver isto?

rs= meu resultset

if (rs.next()){
//Se não vazia faz algo
rs.previous(); //aqui dá o erro abaixo
while (rs.next()) {
} //end do while
}
else {
//SQL vazia
}

org.firebirdsql.jdbc.FBDriverNotCapableException: Result set is TYPE_FORWARD_ONLY
at org.firebirdsql.jdbc.FBCachedFetcher.previous(FBCachedFetcher.java:157)
at org.firebirdsql.jdbc.FBResultSet.previous(FBResultSet.java:1023)
at Bco.doPost(Bco.java:34)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:106)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:576)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:534)

Tem como dizer ao driver, ou a conexão para ela gerar resultsets bi-direcionais ou o Resultset é um tipo apenas forward (o resultset é o problema)?

Delmar

Isto deve responder minha própria pergunta.

[quote]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,
                                  ResultSet.CONCUR_UPDATABLE);
   ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");
   // rs will be scrollable, will not show changes made by others,
   // and will be updatable[/quote]

Outra solução melhor?

É, essa é a solução a primeira vista.