Re: deleteRow or updateRow after insertRow

Lists: pgsql-jdbc
From: "jessica xingzc_he" <xingzc_he(at)hotmail(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: deleteRow or updateRow after insertRow
Date: 2004-11-18 22:39:22
Message-ID: BAY24-F31DC8EA10052A0538BC2D09CC20@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

does anyone know why this happen?

I do first:
ResultSet.moveToInsertRow();
ResultSet.update...(1, ...);
....
rs.insertRow(); // a new row inserted into table

but after that, I may move to some other row, say using Result.absolute(..)
or so, and then
1. update
ResultSet.update...(1, ...);
...
ResultSet.updateRow(); // it does not update the corresponding row in the
table, but also no
exception thrown.

2. delete
ResultSet.deleteRow(); // throws exception: Can not call deleteRow() when on
insert row.

anybody has any clue? thanks

zhenchang


From: Dave Cramer <pg(at)fastcrypt(dot)com>
To: jessica xingzc_he <xingzc_he(at)hotmail(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: deleteRow or updateRow after insertRow
Date: 2004-11-18 23:26:44
Message-ID: 419D2FB4.2030407@fastcrypt.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

You may need to tell us a little more like what version of the driver
you are using ?

--dc--

jessica xingzc_he wrote:

> does anyone know why this happen?
>
> I do first:
> ResultSet.moveToInsertRow();
> ResultSet.update...(1, ...);
> ....
> rs.insertRow(); // a new row inserted into table
>
> but after that, I may move to some other row, say using
> Result.absolute(..) or so, and then
> 1. update
> ResultSet.update...(1, ...);
> ...
> ResultSet.updateRow(); // it does not update the corresponding row in
> the table, but also no
> exception thrown.
>
> 2. delete
> ResultSet.deleteRow(); // throws exception: Can not call deleteRow()
> when on insert row.
>
> anybody has any clue? thanks
>
> zhenchang
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
> message can get through to the mailing list cleanly
>
>

--
Dave Cramer
http://www.postgresintl.com
519 939 0336
ICQ#14675561


From: "jessica xingzc_he" <xingzc_he(at)hotmail(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: deleteRow or updateRow after insertRow
Date: 2004-11-19 01:51:40
Message-ID: BAY24-F312FBA8F681970A67BF8899CC30@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

The server is 7.4.5, and the jdbc driver is pg74.213.jdbc3.

thanks

>From: Dave Cramer <pg(at)fastcrypt(dot)com>
>Reply-To: pg(at)fastcrypt(dot)com
>To: jessica xingzc_he <xingzc_he(at)hotmail(dot)com>
>CC: pgsql-jdbc(at)postgresql(dot)org
>Subject: Re: [JDBC] deleteRow or updateRow after insertRow
>Date: Thu, 18 Nov 2004 18:26:44 -0500
>
>You may need to tell us a little more like what version of the driver you
>are using ?
>
>--dc--
>
>jessica xingzc_he wrote:
>
>>does anyone know why this happen?
>>
>>I do first:
>>ResultSet.moveToInsertRow();
>>ResultSet.update...(1, ...);
>>....
>>rs.insertRow(); // a new row inserted into table
>>
>>but after that, I may move to some other row, say using
>>Result.absolute(..) or so, and then
>>1. update
>>ResultSet.update...(1, ...);
>>...
>>ResultSet.updateRow(); // it does not update the corresponding row in the
>>table, but also no
>> exception thrown.
>>
>>2. delete
>>ResultSet.deleteRow(); // throws exception: Can not call deleteRow() when
>>on insert row.
>>
>>anybody has any clue? thanks
>>
>>zhenchang
>>
>>
>>
>>---------------------------(end of broadcast)---------------------------
>>TIP 3: if posting/reading through Usenet, please send an appropriate
>> subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
>> message can get through to the mailing list cleanly
>>
>>
>
>--
>Dave Cramer
>http://www.postgresintl.com
>519 939 0336
>ICQ#14675561
>


From: Oliver Jowett <oliver(at)opencloud(dot)com>
To: jessica xingzc_he <xingzc_he(at)hotmail(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: deleteRow or updateRow after insertRow
Date: 2004-11-19 02:14:51
Message-ID: 419D571B.7080609@opencloud.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

jessica xingzc_he wrote:

> I do first:
> ResultSet.moveToInsertRow();
> ResultSet.update...(1, ...);
> ....
> rs.insertRow(); // a new row inserted into table
>
> but after that, I may move to some other row, say using
> Result.absolute(..) or so, and then
> 1. update
> ResultSet.update...(1, ...);
> ...
> ResultSet.updateRow(); // it does not update the corresponding row in
> the table, but also no
> exception thrown.
>
> 2. delete
> ResultSet.deleteRow(); // throws exception: Can not call deleteRow()
> when on insert row.

Both cases sound like the driver thinks you are on the insert row. Are
you sure that you are navigating away from the insert row after calling
insertRow() and are not returning to it for some reason?

Does the problem still occur if you use the latest development driver?
If so, do you have a testcase that demonstrates it?

It looks like updateRow when on the insert row is handle incorrectly :we
should throw an exception according to the javadoc, but we silently do
nothing. I will fix this in the development driver shortly. It won't
help your problem, though..

-O


From: "jessica xingzc_he" <xingzc_he(at)hotmail(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: deleteRow or updateRow after insertRow
Date: 2004-11-19 04:34:51
Message-ID: BAY24-F2FCA7FF96E6DC04AFB21B9CC30@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

it seems that moveToCurrentRow(), first(), last(), etc. work after
insertRow(). But using absolute() to navigate some row else does not.

>From: Oliver Jowett <oliver(at)opencloud(dot)com>
>To: jessica xingzc_he <xingzc_he(at)hotmail(dot)com>
>CC: pgsql-jdbc(at)postgresql(dot)org
>Subject: Re: [JDBC] deleteRow or updateRow after insertRow
>Date: Fri, 19 Nov 2004 15:14:51 +1300
>
>jessica xingzc_he wrote:
>
>>I do first:
>>ResultSet.moveToInsertRow();
>>ResultSet.update...(1, ...);
>>....
>>rs.insertRow(); // a new row inserted into table
>>
>>but after that, I may move to some other row, say using
>>Result.absolute(..) or so, and then
>>1. update
>>ResultSet.update...(1, ...);
>>...
>>ResultSet.updateRow(); // it does not update the corresponding row in the
>>table, but also no
>> exception thrown.
>>
>>2. delete
>>ResultSet.deleteRow(); // throws exception: Can not call deleteRow() when
>>on insert row.
>
>Both cases sound like the driver thinks you are on the insert row. Are you
>sure that you are navigating away from the insert row after calling
>insertRow() and are not returning to it for some reason?
>
>Does the problem still occur if you use the latest development driver? If
>so, do you have a testcase that demonstrates it?
>
>It looks like updateRow when on the insert row is handle incorrectly :we
>should throw an exception according to the javadoc, but we silently do
>nothing. I will fix this in the development driver shortly. It won't help
>your problem, though..
>
>-O


From: Kris Jurka <books(at)ejurka(dot)com>
To: jessica xingzc_he <xingzc_he(at)hotmail(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: deleteRow or updateRow after insertRow
Date: 2004-11-19 04:56:39
Message-ID: Pine.BSO.4.56.0411182353140.18815@leary.csoft.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

On Thu, 18 Nov 2004, jessica xingzc_he wrote:

> it seems that moveToCurrentRow(), first(), last(), etc. work after
> insertRow(). But using absolute() to navigate some row else does not.

This could be a problem solved by this fix, if absolute positions you off
the ResultSet.

date: 2004/06/21 03:11:49; author: jurka; state: Exp; lines: +15 -1
Fix some problems with result sets positioned before the start or
after the end of results. You could still call a number of methods
on them like getXXX, updateXXX, and updateRow().

I don't recall the details, but you should try build 215 as well as the
lastest build 308. If either of these still give you problems, please
send us a complete java class which we can run, not just snippets of code.

Kris Jurka