Re: Proper state after insertRow - Mailing list pgsql-jdbc
From | Dave Cramer |
---|---|
Subject | Re: Proper state after insertRow |
Date | |
Msg-id | 1030124287.1595.215.camel@inspiron.cramers Whole thread Raw |
In response to | Re: Proper state after insertRow ("Paul Stead" <pstead@elementallogic.com>) |
Responses |
Re: Proper state after insertRow
|
List | pgsql-jdbc |
Ok, So far this is consistent with what I understand. However there is a special case ( there always is ;) ). What if the underlying table has no data in it. In this case the cursor is nowhere! Dave On Fri, 2002-08-23 at 12:24, Paul Stead wrote: > Dave, > > No expert here, but according to JDBC API Tutorial and Reference, 2nd Ed, > from the Java Series: > (pg 596 - top) ".....the application calls the method insertRow. This > method adds the insert row to both the result set and the underlying > database simultaneously. Finally, the application neeeds to position the > cursor on a row back in the result set." > > So I would think the cursor stays on the insert row, which is "a special > row, associated with the result set but *not a part of it*", and the > application must move the cursor where it wants from there. As it says "the > application needs to position the cursor on a row back in the result set". > > and then > > (pg 596 - bottom) "....a result set keeps track of where its cursor was > positioned when the cursor moved to the insert row. As a result, a call to > the method ResultSet.moveToCurrentRow will return the cursor to the row that > was the current row immediately before the method moveToInsertRow was > called." > > So IMHO while the cursor remains on the insert row, the inserted row itself > does *not* become the current row, since "the method > ResultSet.moveToCurrentRow will return the cursor to the row that was the > current row immediately before the method moveToInsertRow was called". > > Once the application has moved the cursor back to the result set, I don't > think a refreshRow would be needed since insertRow "adds the insert row to > both the result set and underlying database simultaneously." > > And finally, once the application has executed insertRow, I don't think they > can update that particular row without moving. I think the insert row stays > a staging area and perhaps you could "stay there" (i.e. leave the cursor > there) and do some more updateInt updateString calls etc., but once you call > insertRow again it will insert yet another new row into the result set and > database providing you have updated all the necessary columns. It would > seem that the insert row should be "cleared" when insertRow is called, so > that if someone didn't treat it like starting over they'd get an exception. > Otherwise it might be a little dangerous. > > Anywho, that's how I read all this..... > > Hope this helps! > Paul > > > -----Original Message----- > From: pgsql-jdbc-owner@postgresql.org > [mailto:pgsql-jdbc-owner@postgresql.org]On Behalf Of Dave Cramer > Sent: Friday, August 23, 2002 6:48 AM > To: Zengfa Gao > Cc: pgsql-jdbc@postgresql.org > Subject: [JDBC] Proper state after insertRow > > > Does anyone know what the state of the result set should be after an > insertRow > > Does the result set stay on the "insertRow", does the inserted row > become the current row > > should we force the user to do a refreshRow after an insert to pick up > the results of sequences, etc. > > after the user executes insertRow, can they then update this row without > moving? > > Dave > > > ---------------------------(end of broadcast)--------------------------- > TIP 6: Have you searched our list archives? > > http://archives.postgresql.org > > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly > >
pgsql-jdbc by date: