Skip site navigation (1) Skip section navigation (2)

Re: prepared statement incompatibility

From: Dave Cramer <pg(at)fastcrypt(dot)com>
To: Byron Nikolaidis <ByronN(at)routescape(dot)com>
Cc: <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: prepared statement incompatibility
Date: 2005-06-28 20:43:30
Message-ID: 9542C79E-EF74-4336-86F6-85D2B140FD6C@fastcrypt.com (view raw or flat)
Thread:
Lists: pgsql-jdbc
The new driver is more strict about the use of setXXX. Your only  
option is to use protocol version 2 if you do not want to specify the  
correct underlying type.

You can use setObject(colnumber, String, type )

Dave
On 28-Jun-05, at 4:25 PM, Byron Nikolaidis wrote:

> Hello all,
>
>
> We are using Postgres 8.0.3, and are attempting to upgrade to the  
> JDBC 8.x drivers, but have discovered that PreparedStatements that  
> used to work no longer do so.   This is seen where the Java type  
> does not match the database type, such as attempting to use  
> preparedStatement.setString(1, ā€œ1ā€)   where the database type is  
> actually an integer (see stacktrace below).     These worked fine  
> on previous driver versions (such as 7.4).
>
>
> If we set the protocolVersion=2,  the jdbc 8.x drivers will work  
> fine also, but Iā€™m not so sure we really want to do that.
>
>
> At first, I thought this was related to the use of server side  
> prepares.   But I have set the prepareThreshold=0 and verified it  
> was being set by checking for it in the pgconnection and  
> pgstatement, but it appears to have no effect.
>
>
> Can anyone clarify what exactly has changed with prepared  
> statements and why it used to work previously?
>
>
> Thanks,
>
>
> Byron
>
>
> Exception in thread "main" java.sql.SQLException: ERROR: column  
> "ticket" is of type integer but expression is of type character  
> varying
>
>         at  
> org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse 
> (QueryExecutorImpl.java:1471)
>
>         at org.postgresql.core.v3.QueryExecutorImpl.processResults 
> (QueryExecutorImpl.java:1256)
>
>         at org.postgresql.core.v3.QueryExecutorImpl.execute 
> (QueryExecutorImpl.java:175)
>
>         at org.postgresql.jdbc2.AbstractJdbc2Statement.execute 
> (AbstractJdbc2Statement.java:389)
>
>         at  
> org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags 
> (AbstractJdbc2Statement.java:330)
>
>         at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate 
> (AbstractJdbc2Statement.java:282)
>
>         at test.routescape.orm.util.DriverTest.main(DriverTest.java: 
> 49)
>
>
>

In response to

pgsql-jdbc by date

Next:From: Byron NikolaidisDate: 2005-06-28 21:44:37
Subject: Re: prepared statement incompatibility
Previous:From: Mark LewisDate: 2005-06-28 20:29:42
Subject: Re: OT: easiest way to create a custom PreparedStatement

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group