After successfully configuring a JDBC driver for Firebird (aka JayBird) and getting a connection (my database tables are populated within Wabit) I get an
"org.firebirdsql.jdbc.FBSQLException: Only one resultset at a time/statement" exception after dragging a table into QueryPen or executing any sql code.
I have discovered that the exception is thrown during a call to "org.firebirdsql.jdbc.AbstractStatement.getResultSet" and according to the source code of the JDBC Driver this method should only ever be called once if 'Auto-Commit' is on and used.
To my understanding 'Auto-Commit' is on by default within the JDBC driver.
I have endeavoured to disable it within the connection URL to no avail.
Even tried the defaultHoldable flag that some suggest. So far nothing I have found has got me past this Exception.
Java version is 1.6
JayBird version 2.1.6
Firebird 2.0.3 and have tried above also on 1.5.5
Current Wabit release 1.3.0-RC2
**************************************************************
Runtime Stack:
IBWAITER-LOCALHOST:
Database Product Name: Firebird 2.0.WI-V2.0.3.12981 Firebird 2.0/tcp (devchch)/P10
Database Product Version: WI-V2.0.3.12981 Firebird 2.0.WI-V2.0.3.12981 Firebird 2.0/tcp (devchch)/P10
Database Driver Name: JayBird JCA/JDBC driver
Database Driver Version: 2.0
Your query could not be executed due to the following error:
java.sql.SQLException
at ca.sqlpower.wabit.rs.ResultSetHandle$Task.run(ResultSetHandle.java:382)
at ca.sqlpower.wabit.rs.ResultSetHandle.populate(ResultSetHandle.java:433)
at ca.sqlpower.wabit.rs.ResultSetProducerSupport.execute(ResultSetProducerSupport.java:166)
at ca.sqlpower.wabit.rs.query.QueryCache.execute(QueryCache.java:482)
at ca.sqlpower.wabit.rs.query.QueryCache.executeStatement(QueryCache.java:1174)
at ca.sqlpower.swingui.query.SQLQueryUIComponents$ExecuteSQLWorker.doStuff(SQLQueryUIComponents.java:433)
at ca.sqlpower.swingui.SPSwingWorker.run(SPSwingWorker.java:104)
at java.lang.Thread.run(Unknown Source)
Caused by: org.firebirdsql.jdbc.FBSQLException: Only one resultset at a time/statement.
at org.firebirdsql.jdbc.AbstractStatement.getResultSet(AbstractStatement.java:601)
at org.firebirdsql.jdbc.AbstractStatement.getResultSet(AbstractStatement.java:589)
at ca.sqlpower.sql.jdbcwrapper.PreparedStatementDecorator.getResultSet(PreparedStatementDecorator.java:190)
at org.apache.commons.dbcp.DelegatingStatement.getResultSet(DelegatingStatement.java:219)
at ca.sqlpower.wabit.rs.ResultSetHandle$Task.run(ResultSetHandle.java:369)
... 7 more
Your query could not be executed due to the following error:
null
See above for more details.
Executed at 5/05/2010 3:28:42 PM, took 15 milliseconds
SQL statement affected 0 lines.
**************************************************************
Is there a setting to disable Auto-Commit that was proposed in Bug#: 2272. Would this resolve this issue.
Do you know why it would be trying to call this getResultSet method more than once since the table I am querying only has a few records?
I did also try version 2.0 of JayBird exact some problem.
I'm very keen to see what Wabit can do for our Company, so any guidance would be greatly appreciated.
I met the same problem.
It is caused by JDBC version. Jaybird is a JDBC2.0 driver. But Wabit needs a JDBC3.0 driver. I didn't find any JDBC3.0 driver for Firebird.
So, I use IBPhoenix ODBC driver, and set up a DSN, and use sun's JDBC ODBC brige driver to connect to Firebird.