Subject | Re: [Firebird-Java] This code worked in 1.5.5... but it doesn't in 2.0.1 |
---|---|
Author | Edilmar |
Post date | 2006-03-31T13:42:58Z |
Roman Rokytskyy escreveu:
However, a comment about this: I have a framework with generic
classes/methods that I use in many different databases, not only FB, but
also jTDS/MSSQL, Oracle, PostgreSQL and HSQLDB. Then, in this case, I'll
have to make an "if FB ... do getCurrentResultSet(); else do
getResultSet();".
My doubt is: all the other JDBC drivers don't implement the real JDBC
specification, or is this a specific limit of Jaybird driver, because
the logical used by it?
When looking the source code of Jaybird (AbstractStatement.java), I
understood it would be a problem with its logic, because in my code I
really called only one time the getResultSet, and it would not be
possible to arise the exception about this.
I changed my code to do this simple handling:
try {
Statement stmt1 = connLocal.createStatement();
stmt1.executeQuery("Select CodCliente,Nome From Cliente");
ResultSet rs1 = stmt1.getResultSet();
stmtHTML.close();
} catch (Exception e) {
e.printStackTrace();
}
but it yet didn't work.
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 HTMLProducerWebSaf.OnHTMLTag(HTMLProducerWebSaf.java:1526)
Then, the unique way is really using specific "if" for FB/Jaybird.
> > and into PreencheComboBoxCodDesc method, I have this code:OK, I'll do this.
> > ResultSet rs = stmt.getResultSet();
>
> Change it to
>
> ResultSet rs =
> ((org.firebirdsql.jdbc.FirebirdStatement)stmt).getCurrentResultSet();
>
> Roman
>
However, a comment about this: I have a framework with generic
classes/methods that I use in many different databases, not only FB, but
also jTDS/MSSQL, Oracle, PostgreSQL and HSQLDB. Then, in this case, I'll
have to make an "if FB ... do getCurrentResultSet(); else do
getResultSet();".
My doubt is: all the other JDBC drivers don't implement the real JDBC
specification, or is this a specific limit of Jaybird driver, because
the logical used by it?
When looking the source code of Jaybird (AbstractStatement.java), I
understood it would be a problem with its logic, because in my code I
really called only one time the getResultSet, and it would not be
possible to arise the exception about this.
I changed my code to do this simple handling:
try {
Statement stmt1 = connLocal.createStatement();
stmt1.executeQuery("Select CodCliente,Nome From Cliente");
ResultSet rs1 = stmt1.getResultSet();
stmtHTML.close();
} catch (Exception e) {
e.printStackTrace();
}
but it yet didn't work.
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 HTMLProducerWebSaf.OnHTMLTag(HTMLProducerWebSaf.java:1526)
Then, the unique way is really using specific "if" for FB/Jaybird.