Thread: Resultset problem or BUG !
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
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
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
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();
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:
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.
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
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