java - UCanAccess Exception: cannot getMetaData from ResultSet (invalid cursor state) -


i'm trying data access table , show on jtable. i'm using ucanaccess java 8 not support jdbc-odbc.

my window class calls charging methods:

ctrlgestionventas= new ctrlgestionventas(); ctrlgestionventas.cargarlistaventas(tbllistaventas); 

then, ctrlgestionventas.cargarlistaventas(tabla) fills jtable resultset:

public class ctrlgestionventas {  public void cargarlistaventas(jtable tabla) {      resultset rs;     dataventas dv = new dataventas();     rs = dv.getlistaventas();     try {             tabla.setmodel(buildtablemodel(rs));             rowsorter sorter = new tablerowsorter(buildtablemodel(rs));             tabla.setrowsorter(sorter);             tabla.gettableheader().setdefaultrenderer(new multisorttablecellheaderrenderer());     } catch (sqlexception e) {         // todo auto-generated catch block         e.printstacktrace();     }  }   public static defaulttablemodel buildtablemodel(resultset rs)         throws sqlexception {      resultsetmetadata metadata = rs.getmetadata(); /*this line apparently provokes error*/      // names of columns      vector<string> columnnames = new vector<string>();     int columncount = metadata.getcolumncount();     (int column = 1; column <= columncount; column++) {         columnnames.add(metadata.getcolumnname(column));     }      // data of table      <vector<object>> data = new vector<vector<object>>();     while (rs.next()) {         vector<object> vector = new vector<object>();         (int columnindex = 1; columnindex <= columncount; columnindex++) {             vector.add(rs.getobject(columnindex));         }         data.add(vector);     }      return new defaulttablemodel(data, columnnames);  }  } 

here's resultset getter method, in dataventas class (note: factoryconexion has connectionstring, ommited in post):

public class dataventas {     public resultset getlistaventas() {         preparedstatement stmt=null;         resultset rs=null;         try {              stmt = factoryconexion.getinstancia().getconn().preparestatement("select * ventasfinal");             rs = stmt.executequery();         } catch (sqlexception ex) {                  system.out.println("sqlexception: " + ex.getmessage());          }         finally{             try {                 if (rs!=null)                     rs.close();                 if (stmt!=null)stmt.close();                             } catch (sqlexception e) {                 e.printstacktrace();             }         }         return rs;     }  } 

when execute, following:

net.ucanaccess.jdbc.ucanaccesssqlexception: ucaexc:::3.0.6 estado del cursor incorrecto: cursor indicado no está abierto     @ net.ucanaccess.jdbc.ucanaccessresultset.getmetadata(ucanaccessresultset.java:480)     @ negocio.ctrlgestionventas.buildtablemodel(ctrlgestionventas.java:37)     @ negocio.ctrlgestionventas.cargarlistaventas(ctrlgestionventas.java:22)     @ ui.gestionventas.<init>(gestionventas.java:85)     @ ui.gestionventas$1.run(gestionventas.java:63)     @ java.awt.event.invocationevent.dispatch(unknown source)     @ java.awt.eventqueue.dispatcheventimpl(unknown source)     @ java.awt.eventqueue.access$500(unknown source)     @ java.awt.eventqueue$3.run(unknown source)     @ java.awt.eventqueue$3.run(unknown source)     @ java.security.accesscontroller.doprivileged(native method)     @  java.security.protectiondomain$javasecurityaccessimpl.dointersectionprivilege(unknown source)     @ java.awt.eventqueue.dispatchevent(unknown source)     @ java.awt.eventdispatchthread.pumponeeventforfilters(unknown source)     @ java.awt.eventdispatchthread.pumpeventsforfilter(unknown source)     @ java.awt.eventdispatchthread.pumpeventsforhierarchy(unknown source)     @ java.awt.eventdispatchthread.pumpevents(unknown source)     @ java.awt.eventdispatchthread.pumpevents(unknown source)     @ java.awt.eventdispatchthread.run(unknown source)  caused by: java.sql.sqlexception: estado del cursor incorrecto: cursor indicado no está abierto     @ org.hsqldb.jdbc.jdbcutil.sqlexception(unknown source)     @ org.hsqldb.jdbc.jdbcutil.sqlexception(unknown source)     @ org.hsqldb.jdbc.jdbcutil.sqlexception(unknown source)     @ org.hsqldb.jdbc.jdbcresultset.checkclosed(unknown source)     @ org.hsqldb.jdbc.jdbcresultset.getmetadata(unknown source)     @ net.ucanaccess.jdbc.ucanaccessresultset.getmetadata(ucanaccessresultset.java:478)     ... 18 more  caused by: org.hsqldb.hsqlexception: estado del cursor incorrecto: cursor indicado no está abierto     @ org.hsqldb.error.error.error(unknown source)     @ org.hsqldb.error.error.error(unknown source)     ... 22 more  net.ucanaccess.jdbc.ucanaccesssqlexception: ucaexc:::3.0.6 estado del cursor incorrecto: cursor indicado no está abierto     @ net.ucanaccess.jdbc.ucanaccessresultset.getmetadata(ucanaccessresultset.java:480)     @ negocio.ctrlvendedores.buildtablemodel(ctrlvendedores.java:38)     @ negocio.ctrlvendedores.cargarlistavendedores(ctrlvendedores.java:23)     @ ui.gestionventas.<init>(gestionventas.java:95)     @ ui.gestionventas$1.run(gestionventas.java:63)     @ java.awt.event.invocationevent.dispatch(unknown source)     @ java.awt.eventqueue.dispatcheventimpl(unknown source)     @ java.awt.eventqueue.access$500(unknown source)     @ java.awt.eventqueue$3.run(unknown source)     @ java.awt.eventqueue$3.run(unknown source)     @ java.security.accesscontroller.doprivileged(native method)     @  java.security.protectiondomain$javasecurityaccessimpl.dointersectionprivilege(unknown source)     @ java.awt.eventqueue.dispatchevent(unknown source)     @ java.awt.eventdispatchthread.pumponeeventforfilters(unknown source)     @ java.awt.eventdispatchthread.pumpeventsforfilter(unknown source)     @ java.awt.eventdispatchthread.pumpeventsforhierarchy(unknown source)     @ java.awt.eventdispatchthread.pumpevents(unknown source)     @ java.awt.eventdispatchthread.pumpevents(unknown source)     @ java.awt.eventdispatchthread.run(unknown source)  caused by: java.sql.sqlexception: estado del cursor incorrecto: cursor indicado no está abierto     @ org.hsqldb.jdbc.jdbcutil.sqlexception(unknown source)     @ org.hsqldb.jdbc.jdbcutil.sqlexception(unknown source)     @ org.hsqldb.jdbc.jdbcutil.sqlexception(unknown source)     @ org.hsqldb.jdbc.jdbcresultset.checkclosed(unknown source)     @ org.hsqldb.jdbc.jdbcresultset.getmetadata(unknown source)     @  net.ucanaccess.jdbc.ucanaccessresultset.getmetadata(ucanaccessresultset.java:478)     ... 18 more  caused by: org.hsqldb.hsqlexception: estado del cursor incorrecto: cursor indicado no está abierto     @ org.hsqldb.error.error.error(unknown source)     @ org.hsqldb.error.error.error(unknown source)     ... 22 more 

note last line marked in debugger 1 @ buildtablemodel method (rs.getmetadata()). what's going on here?

thanks time!

that method gets resultset, closes in block. can't use resultset @ all. have re-organize code.


Comments

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -