Hi,
I was working on implementing updateClob/updateBlob methods on the network client when I noticed the following.

1) updateClob on a CHAR/VARCHAR/LONG VARCHAR column throws an exception on the Embedded Driver but not on the NetworkClient 2) updateBlob works on a CHAR/VARCHAR/LONG VARCHAR FOR BIT DATA throws an exception on the Embedded Driver but not on the NetworkClient

From what the JDBC 4.0 spec says (pg 198 table b-5) the Embedded behaviour seems to be correct.

Also the current implementation of setObject(int targetType, java.sql.Clob source) in the client is bugged. In implementing updateClob(int , Clob) I forward this call to setObject. After this doing a updateClob on a CHAR column and a subsequent retrieval using ResultSet.getString gives

"[EMAIL PROTECTED]"

This is because we do a toString on the Clob column while doing an insert. The relevant code can be found in

CrossConverters.java line no 813.

I have two ways of going about my patch to implement the updateBlob/updateClob methods

a) Match Embedded behaviour. This would involve throwing an exception in the cases mentioned above b) Retain current behaviour. This would involve fixing CrossConverters.java to retrieve the string from the Clob rather than doing a toString.

I intend to proceed in one of the above ways.

Narayanan

Reply via email to