Hello;
I need to store serializable java objects in SapDb. I tried the following simple approach:
1) Declared LONG BYTE column in my database table;
2) Used PreparedStatement.setObject(int, java.lang.Object) method to set the object to be stored. Below is small code fragment of what I tried to do:
SerialTest st=new SerialTest(1, "String one"); // SerialTest is java.io.Serializable object
PreparedStatement prepSt=connection.prepareStatement("insert into BLOBTAB values (?,?)");
prepSt.setInt(1, 1);
prepSt.setObject(2, st); // This column is declared as LONG BYTE
prepSt.execute();
connection.commit();
prepSt.close();
Unfortunately the attempt to store object using this approach results in the following exception:
com.sap.dbtech.jdbc.translators.ConversionExceptionSapDB: Cannot put ASCII data into this long column
at com.sap.dbtech.jdbc.translators.StreamTranslator.transAsciiStreamForInput(StreamTranslator.java:251)
at com.sap.dbtech.jdbc.translators.StreamTranslator.transStringForInput(StreamTranslator.java:340)
at com.sap.dbtech.jdbc.translators.DBTechTranslator.transObjectForInput(DBTechTranslator.java:1031)
at com.sap.dbtech.jdbc.CallableStatementSapDB.setObject(CallableStatementSapDB.java:1571)
at com.sap.dbtech.jdbc.trace.PreparedStatement.setObject(PreparedStatement.java:1101)
at sapdb.BasicCheck.writeTestObject(BasicCheck.java:134)
Are there any ways to write/read java.io.Serializable objects using com.sap.dbtech.jdbc.DriverSapDB driver? I am using sapdb-jdbc-bin-7.3.0.23a.jar driver (the latest I found) with SapDB 7.3.
Any help is appreciated.
Thank you,
Vadim
