Re: [GENERAL] Resultset problem or BUG ! - Mailing list pgsql-jdbc

From Oliver Jowett
Subject Re: [GENERAL] Resultset problem or BUG !
Date
Msg-id 411B02FE.6060600@opencloud.com
Whole thread Raw
In response to Re: [GENERAL] Resultset problem or BUG !  (Elie Nacache <elie_nacache@yahoo.com>)
Responses Re: [GENERAL] Resultset problem or BUG !
List pgsql-jdbc
Elie Nacache wrote:

>     this.sqlDatas.moveToInsertRow();
>     this.updateColumns();
>     this.sqlDatas.insertRow();

The JDBC javadoc implies that calling insertRow() leaves the resultset
on the insert row. This is what the driver implements.

>     this.sqlLineNumber = this.sqlDatas.getRow(); // INFO >> return 0

As the javadoc says, getRow() returns 0 if there is no current row.
You're on the insert row so there is no current row.

>     INFO >> At this step there is no commit
>     INFO >> Second step update the row after collecting updated info
>
>     this.sqlDatas.absolute(this.sqlLineNumber); // INFO >> throw the
>     exception

What is the exception you see?

The current development driver (see jdbc.postgresql.org) will treat
absolute(0) as if you'd called beforeFirst(). Older drivers might do
something different.

>     this.updateColumns();
>     this.sqlDatas.updateRow();
>     INFO >> If I fix the sqlLineNumber to 1 and force the absolute(1)
>     then no Execption is thrown but the modification is not seen in the
>     table.

Looking at the driver source, it looks like the newly inserted row is
appended to the resultset, so you should find it at the end of the
resultset not the start. (I don't think making this assumption is
portable, though).

-O

pgsql-jdbc by date:

Previous
From: Elie Nacache
Date:
Subject: Re: [GENERAL] Resultset problem or BUG !
Next
From: Guido Fiala
Date:
Subject: updating Arrays