Title: Storing java.io.Serializable objects in SapDB

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

Reply via email to