Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: problem to get nextval of a sequence

7 views
Skip to first unread message

Dave Cramer

unread,
Dec 28, 2004, 8:08:27 AM12/28/04
to
Daniel,

You have to call ress.next() before you get the value.

Dave

Daniel Schaedler wrote:

> Hi List
>
> I try to get the 'nextval' of a sequence:
> ***
> String query = "SELECT nextval('nodes_nodeid_seq')";
> pstmt = conn.prepareStatement(query);
> logger.debug("statement: " + pstmt.toString());
> ResultSet ress = pstmt.executeQuery();
> long newID = ress.getLong("nextval"); // <-- Exception
> ***
>
> I get the following Exception:
> ***
> org.postgresql.util.PSQLException: ResultSet not positioned properly,
> perhaps you need to call next.
> at
> org.postgresql.jdbc2.AbstractJdbc2ResultSet.checkResultSet(AbstractJdbc2ResultSet.java:2380)
>
> at
> org.postgresql.jdbc2.AbstractJdbc2ResultSet.getString(AbstractJdbc2ResultSet.java:1821)
>
> at
> org.postgresql.jdbc2.AbstractJdbc2ResultSet.getFixedString(AbstractJdbc2ResultSet.java:2326)
>
> at
> org.postgresql.jdbc2.AbstractJdbc2ResultSet.getLong(AbstractJdbc2ResultSet.java:1935)
>
> at
> org.postgresql.jdbc2.AbstractJdbc2ResultSet.getLong(AbstractJdbc2ResultSet.java:2158)
>
> at org.daniel.pws.store.PostgresStore.newNode(PostgresStore.java:307)
> at org.daniel.pws.store.StoreTester.main(StoreTester.java:71)
> 2004-12-28 13:41:57,983 - not able to get the new nodeID
> ****
>
> executing the query in PostgresSQL directly works, I get the correct
> return value.
> The Query itself seems to be executet, as I get other exceptions if I
> misspell the columnname (e.g.).
> I'm working with Postgres-jdbc: pg80b1-1.308.jdbc3.jar and JDK 1.5.0
>
> someone an Idea?
>
> wishing all a Happy new Year
> Daniel


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


---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

Guillaume Cottenceau

unread,
Dec 28, 2004, 8:19:04 AM12/28/04
to
Daniel Schaedler <postgres-jdbc 'at' daniel.schaedler.name> writes:

> Hi List
>
> I try to get the 'nextval' of a sequence:
> ***
> String query = "SELECT nextval('nodes_nodeid_seq')";
> pstmt = conn.prepareStatement(query);
> logger.debug("statement: " + pstmt.toString());
> ResultSet ress = pstmt.executeQuery();
> long newID = ress.getLong("nextval"); // <-- Exception
> ***
>
> I get the following Exception:
> ***
> org.postgresql.util.PSQLException: ResultSet not positioned properly,
> perhaps you need to call next.

"perhaps you need to call next".

Have you tried calling next?

--
Guillaume Cottenceau

---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/docs/faqs/FAQ.html

Dave Cramer

unread,
Dec 28, 2004, 9:05:36 AM12/28/04
to
Daniel,

The spec says that you must call next to position the cursor. What
happens if nothing comes back? ie an empty result set ?

Dave

Daniel Schaedler wrote:

> Guillaume Cottenceau wrote:
>
>> Daniel Schaedler <postgres-jdbc 'at' daniel.schaedler.name> writes:
>>
>>
>>> Hi List
>>>
>>> I try to get the 'nextval' of a sequence:
>>> ***
>>> String query = "SELECT nextval('nodes_nodeid_seq')";
>>> pstmt = conn.prepareStatement(query);
>>> logger.debug("statement: " + pstmt.toString());
>>> ResultSet ress = pstmt.executeQuery();
>>> long newID = ress.getLong("nextval"); // <-- Exception
>>> ***
>>>
>>> I get the following Exception:
>>> ***
>>> org.postgresql.util.PSQLException: ResultSet not positioned properly,
>>> perhaps you need to call next.
>>
>>
>>
>> "perhaps you need to call next".
>>
>> Have you tried calling next?
>
>

> uhhh....
> ....now yes...and it works.
>
> When I expect only one set of data, I never call next. That's why I
> ignored the statement.
>
> thanks anyway.
> Daniel
>
>
>

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


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

Guillaume Cottenceau

unread,
Dec 28, 2004, 9:56:29 AM12/28/04
to
Dave Cramer <pg 'at' fastcrypt.com> writes:

> Daniel,
>
> The spec says that you must call next to position the cursor. What
> happens if nothing comes back? ie an empty result set ?

With previous versions of postgres (and/or the jdbc driver?) it
was possible to get results with the cursor positioned before the
first row; it returned results from the first row. That's
probably the reason of the buggy code of Daniel.

--
Guillaume Cottenceau

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

0 new messages