Subject Re: [Firebird-Java] Re: PreparedStatements - bug in handling exception
Author Miroslav Novak
Hi Roman,

the latest version from CVS works fine. Thanks.

However, while building, a lot of tests fail. Is it ok to use it in my
application or shall I wait for release version?

Mirek.



On Mon, 26 Apr 2004, Roman Rokytskyy wrote:

> Hi,
>
> > I have yet another a problem with the prepared statement and string
> > truncation. When I execute prepared statement where the text is
> > longer than the field length it throws exception operation
> > cancelled, as explained in this thread, but then I tried to rollback
> > the transaction and I got "GDS Exception. 335544726. Error reading
> > data from the connection."
> > The connection seems to be broken now on.
> > This was at my Windows box. On Linux it just doesn't throw the first
> > excepion about the cancellation of the operation, but just the Error
> > reading data from the connection.
> > I am using Jaybird for JDK 1.4.
>
> I tried your test case (though I modified it a bit) with recent
> version from CVS (basically RC2 with one fix that will appear in RC3)
> and could not reproduce it. Did you try your test case with RC2? Can
> you check out JayBird from CVS and check if my version of the test
> case is correct (TestFBPreparedStatement.testLongParameter()). Here's
> its text:
>
> /**
> * Test if parameters are correctly checked for their length.
> * @throws Exception if something went wrong.
> */
> public void testLongParameter() throws Exception {
> con.setAutoCommit(true);
> Statement stmt = con.createStatement();
> try {
> stmt.execute("INSERT INTO testtab(id, field1, field6)
> VALUES(1, '', 'a')");
> } finally {
> stmt.close();
> }
>
> con.setAutoCommit(false);
>
> PreparedStatement ps =
> con.prepareStatement("UPDATE testtab SET field6=? WHERE id
> = 1");
> try {
> try {
> ps.setString(1,
> "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
> ps.execute();
> con.commit();
> } catch(SQLException ex) {
> con.rollback();
> }
> } catch(SQLException ex) {
> ex.printStackTrace();
>
> fail("No exception should be thrown.");
> } finally {
> ps.close();
> }
> }
>
> Thanks!
> Roman
>
>
>
>
> Yahoo! Groups Links
>
>
>
>
>
>
>
>