Armin Waibel wrote:
If this is the case I think the driver has a somewhat weird class structure...

this could be the case, but there is no rule that say "don't do this it's evil" ;-)

Are you sure? My hope is that an in-depth search of the JDBC specification will actually say that "returning CallableStatement from a Connection#prepareStatement is evil and not allowed".

Maybe not with that exact wording. :)

But just looking at the API docs I can't find what I want to find, only:
http://java.sun.com/j2se/1.4.2/docs/api/java/sql/Connection.html#prepareStatement(java.lang.String,%20int,%20int)

That says that prepareStatement _must_ return instanceof PreparedStatement.

And:
http://java.sun.com/j2se/1.4.2/docs/api/java/sql/CallableStatement.html

That says that CallableStatement extends PreparedStatement.

So in theory, just from reading the API docs, it looks like the driver
is not evil...

Maybe you could try to write a really small stand-alone JDBC test class
and debug Connection#prepareStatement vs Connection#prepareCall and see
if there is anything in the class structure that can be used to separate
the two?

hmm, I don't like this. I think the assumption made in Platform.isCallableStatement is wrong, this is the problem not the driver implementation class (in next version of the driver tis can change....).

IMO it's a fault in the driver if it does this, but as you say: if the JDBC spec does not explicitly forbid this it is allowed and OJB have to face the fact that some drivers might or might not conform to the "de-factor" standard of not downcasting non-callable PreparedStatement to also implement CallableStatement.

BTW: is this really the default MaxDB driver behaviour? No special config?

Maybe Vadim has more input re. your suggested solution to read the info
from the OJB descriptors instead?

Regards,
 Martin

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to