Today's error message comes from the Sybase jConnect JDBC drivers (v5.2):
com.sybase.jdbc2.utils.UnimplementedOperationException: The method com.sybase.jdbc2.jdbc.SybPreparedStatement.setCharacterStream( int, java.io.Reader, int) has not been completed and should not be called.
"We thank you for calling this method. All of our programmers are busy right now, but if you wait, then some day one of them might get around to fully implementing all of the methods in the JDBC2 specification. Phew, there sure are a lot of them!
"Until then, console yourself by thinking of all the methods that we have finished writing.
"Share and enjoy!"
Update: They seem to have got around to implementing this method by version 5.5
Q: Does ship with support for the JDBC API?
A: Yes, we support the JDBC API.
Q: Does Sybase implement the JDBC API?
A: Ummmm, well... for certain values of "implement," yes.
A number of methods in JDBC are optional. IBM's DB2 drivers (even the newer ones) select to not implement a number of these, too (like moveToInsertRow, IIRC).
Oracle's blob mess notwithstanding.
Would you still say you can write DB independent JDBC code ?