Re: Retrieve Query - Mailing list pgsql-jdbc

From Achilleus Mantzios
Subject Re: Retrieve Query
Date
Msg-id Pine.LNX.4.44.0602271348500.13368-100000@matrix.gatewaynet.com
Whole thread Raw
In response to Re: Retrieve Query  (Markus Schaber <schabi@logix-tt.com>)
Responses Re: Retrieve Query
List pgsql-jdbc
O Markus Schaber έγραψε στις Feb 27, 2006 :

> Hi, Hugo,
>
> Hugo Sacramento wrote:
> > How do I to retrieve the string query prepared by a PreparedStatement??
>
> > -------------
> > PreparedStatement stmt = con.prepareStatement("select * from abc where
> > x=?");
> > stmt.setString(1, x);
> > System.out.println("My Prepared Query:" + stmt.toString());
> > ------------
> >
> > but it don't work.
>
> There are at least two potential problems:
>
> - The statement is prepared server-side, and the parameters are sent
> separately (binding). Only the server has the "real" representation of
> the complete statement. So the prepared statement can only give an
> approximation, which is what pgjdbc does.
>
> - Most connection pooling and datasource mechanisms (e. G. in jboss)
> wrap your connection and all other classes (including the statement),
> but don't delegate the toString() method, so you'll only get something
> like "org.jboss.pool.wrappedStatement@4711".

In jboss there is getUnderlyingStatement() method
so you could

PreparedStatement st=...
.....
org.jboss.resource.adapter.jdbc.local.LocalPreparedStatement jst =
(org.jboss.resource.adapter.jdbc.local.LocalPreparedStatement) st;

org.postgresql.jdbc3.Jdbc3PreparedStatement pst =
(org.postgresql.jdbc3.Jdbc3PreparedStatement) jst.getUnderlyingStatement();

System.out.println(pst.toString());

>
> HTH,
> Markus
>

--
-Achilleus


pgsql-jdbc by date:

Previous
From: Markus Schaber
Date:
Subject: Re: Retrieve Query
Next
From: Kris Jurka
Date:
Subject: Re: postgres PreparedStatement commented ? problem PSQLException: