Обсуждение: jdbc can't getResult of "select nextval (seq_name)"

Поиск
Список
Период
Сортировка

jdbc can't getResult of "select nextval (seq_name)"

От
Felix Morley Finch
Дата:
I am a somewhat newbie with java and sql.  I've run into something
that seems odd, maybe even wrong (!).

    Statement seq = db.createStatement ();
    seq.execute ("SELECT nextval ('cdid')");
    ResultSet rs = seq.getResultSet ();
    id = rs.getInt (0 + 1);            <=========

The SQL works fine directly in psql.  All other SQL statements seem to
work.  But getInt, in this case, gets a NullPointerException.  Here's
the stack dump:

Exception occurred during event dispatching:
java.lang.NullPointerException:
        at postgresql.ResultSet.getString(ResultSet.java:161)
        at postgresql.ResultSet.getInt(ResultSet.java:241)
        at postgresql.ResultSet.getInt(ResultSet.java:569)
    ...

If I change the argument to 0, I get

    java.sql.SQLException: Column Index out of range

I tried 'nextval' too, and got the same SQLException.

Am I doing something wrong here?

This is PostgresQL 6.3.2, Linux 2.0.33, glibc, and linux jdk 1.1.5v5
glibc.  I have no problems with the Perl program which does the same
operation many places.

--
            ... _._. ._ ._. . _._. ._. ___ .__ ._. . .__. ._ .. ._.
     Felix Finch: scarecrow repairman & rocket surgeon / felix@crowfix.com
  PGP = 91 B3 94 7C E9 E8 76 2D   E1 63 51 AA A0 48 89 2F  ITAR license #4933
I've found a solution to Fermat's Last Theorem but I see I've run out of room o

Re: [INTERFACES] jdbc can't getResult of "select nextval (seq_name)"

От
Anil Amarakoon
Дата:
Hi!

I am no expert but this works for me.

 try
        {

       Connection
conn=DriverManager.getConnection("jdbc:postgresql://myserver:5432/mydb","userName","password");

       Statement  stmt = conn.createStatement();
       ResultSet   rest = stmt.executeQuery("select  last_value from cid ");
        while (rest.next())
               int   myint =   rest.getInt(1);
        }
        catch(SQLException  sqle)
        {
            sqle.printStackTrace();
           }

        bla bla bla again.....

on psql if you go type       select * from mysequence;

you will see what variables you can access. I am not sure it is last_value or last
value or current value.
sorry!!!
Hope this helps.


Anil


Felix Morley Finch wrote:

> I am a somewhat newbie with java and sql.  I've run into something
> that seems odd, maybe even wrong (!).
>
>         Statement seq = db.createStatement ();
>         seq.execute ("SELECT nextval ('cdid')");
>         ResultSet rs = seq.getResultSet ();
>         id = rs.getInt (0 + 1);                 <=========