Thread: Resultset problem or BUG !

Resultset problem or BUG !

From
Elie Nacache
Date:
Hi All,
 
A data writed in a table but not commited is not accessible in modification by the resultset. The error returned is "Cannot move to index of 0".
 
BTW in SQL a sequence of INSERT, UPDATE and then COMMIT work fine.
I'm using the same code with oracle and it's working well.
 
Is it a BUG !?
 
I'm using psql 7.4.3 on Linux 9.0
 
 
Any help !
 
Elie

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

Re: Resultset problem or BUG !

From
Richard Huxton
Date:
Elie Nacache wrote:
> Hi All,

Hi Elie, I'm afraid we'll need more details before we can help.

> A data writed in a table but not commited is not accessible in
> modification by the resultset. The error returned is "Cannot move to
> index of 0".

Is this an ODBC or JDBC error? There are specific lists for both of those.

> BTW in SQL a sequence of INSERT, UPDATE and then COMMIT work fine.

> I'm using the same code with oracle and it's working well.

What code?

> Is it a BUG !?

Can't say.

> I'm using psql 7.4.3 on Linux 9.0

psql is the command-line tool, so I'm guessing you mean PostgreSQL (or
pgsql) 7.4.3. Likewise, there is no Linux 9.0 - I'm assuming you mean
RedHat, SuSE or Mandrake.

If you can provide details on how you are accessing the database and a
short example of your code, I'm sure someone will be able to help.
--
   Richard Huxton
   Archonet Ltd

Re: Resultset problem or BUG !

From
Elie Nacache
Date:
Hi Richard,
 
Some informations:
==============
OS: RedHat
DB: PostgreSQL 7.4.3
Driver: PostgreSQL 7.4.2 JDBC3 with SSL (build 213)
 
Here some code:
============
INFO >> sqlDatas is of type ResultSet
INFO >> Step first insert new row
 
this.sqlDatas.moveToInsertRow();
this.updateColumns();
this.sqlDatas.insertRow();
this.sqlLineNumber = this.sqlDatas.getRow(); // INFO >> return 0
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
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.
 
Elie Nacache
RentaSoft Ltd.

Richard Huxton <dev@archonet.com> wrote:
Elie Nacache wrote:
> Hi All,

Hi Elie, I'm afraid we'll need more details before we can help.

> A data writed in a table but not commited is not accessible in
> modification by the resultset. The error returned is "Cannot move to
> index of 0".

Is this an ODBC or JDBC error? There are specific lists for both of those.

> BTW in SQL a sequence of INSERT, UPDATE and then COMMIT work fine.

> I'm using the same code with oracle and it's working well.

What code?

> Is it a BUG !?

Can't say.

> I'm using psql 7.4.3 on Linux 9.0

psql is the command-line tool, so I'm guessing you mean PostgreSQL (or
pgsql) 7.4.3. Likewise, there is no Linux 9.0 - I'm assuming you mean
RedHat, SuSE or Mandrake.

If you can provide details on how you are accessing the database and a
sho rt example of your code, I'm sure someone will be able to help.
--
Richard Huxton
Archonet Ltd

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org


Do you Yahoo!?
Read only the mail you want - Yahoo! Mail SpamGuard.

Re: Resultset problem or BUG !

From
Richard Huxton
Date:
Elie Nacache wrote:
> Hi Richard,
>
> Some informations: ============== OS: RedHat DB: PostgreSQL 7.4.3
> Driver: PostgreSQL 7.4.2 JDBC3 with SSL (build 213)

OK - I'm not a java expert, so if no-one else has anything better to
say, please post this on the jdbc mailing list instead. They'll be able
to help you for sure.

> Here some code: ============ INFO >> sqlDatas is of type ResultSet
> INFO >> Step first insert new row
>
> this.sqlDatas.moveToInsertRow(); this.updateColumns();
> this.sqlDatas.insertRow(); this.sqlLineNumber =
> this.sqlDatas.getRow(); // INFO >> return 0
>
> 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 this.updateColumns(); this.sqlDatas.updateRow();

What is "sqlLineNumber"? I'm not familiar with that attribute off the
top of my head. The exception was complaining that .absolute() couldn't
move to row 0 which seems correct .absolute(1) is the first row. So -
what is "sqlLineNumber" and why is it zero?

> 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.

The easiest way to see why the change isn't seen is to turn statement
logging on in PostgreSQL (and tell it to reload its config file).

--
   Richard Huxton
   Archonet Ltd

Re: Resultset problem or BUG !

From
Kris Jurka
Date:

On Wed, 11 Aug 2004, Elie Nacache wrote:

>  A data writed in a table but not commited is not accessible in
> modification by the resultset. The error returned is "Cannot move to
> index of 0".
>

It is entirely unclear what you are actually doing here.  Are you using
JDBC?  Could you show us some sample code that demonstrates the problem?

Kris Jurka