You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by Mark Neighbors <mn...@visualanalytics.com> on 2003/06/02 23:54:19 UTC

msaccess memo and ole object types

Hi,

Does anyone have the correct configuration for msaccess memo and ole object types?

The configuration listed here causes a hangup in the sun.jdbc.odbc classes.
The thread dump from a ctl-break is also listed below.

Thanks in advance,
Mark
___________________________________________________________________________

* configuration

       * sql\base\msaccess\db.props in torque-3.0.jar
              LONGVARCHAR = MEMO
                  * unchanged
              BINARY = longbinary
              VARBINARY = longbinary
              LONGVARBINARY = longbinary
                  * changed as per the second table in http://admin.nj.devry.edu/~kjudge/accessddl.htm
              ...

       * for memo:
             * example torque column declaration
                    * <column name="DESCRIPTION"  type="LONGVARCHAR"/>


              * example ojb field-descriptor
                    * <field-descriptor name="description" column="DESCRIPTION"  jdbc-type="VARCHAR"/>
                           * This works up to the 255 character length limit

                    * <field-descriptor name="description" column="DESCRIPTION"  jdbc-type="LONGVARCHAR"/>
                           * This hangs in

                                     at sun.jdbc.odbc.JdbcOdbcObject.CharsToBytes(JdbcOdbcObject.java:326)
                                     at
sun.jdbc.odbc.JdbcOdbcPreparedStatement.setCharacterStream(JdbcOdbcPreparedStatement.java:2401)
                                     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                                     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                                     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                                     at java.lang.reflect.Method.invoke(Method.java:324)
                                     at
org.apache.ojb.broker.util.batch.PreparedStatementInvocationHandler.doExecute(PreparedStatementInvocationHandler.java:173)
                                     at
org.apache.ojb.broker.util.batch.PreparedStatementInvocationHandler.invoke(PreparedStatementInvocationHandler.java:140)
                                     at $Proxy0.doExecute(Unknown Source)
                                     at org.apache.ojb.broker.util.batch.BatchConnection.executeBatch(BatchConnection.java:179)
                                     at
org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.executeBatch(ConnectionManagerImpl.java:326)
                                     at org.apache.ojb.odmg.ObjectEnvelopeTable.commit(ObjectEnvelopeTable.java:188)
                                     at org.apache.ojb.odmg.TransactionImpl.doCommitOnObjects(TransactionImpl.java:326)
                                     - locked <07BD5420> (a org.apache.ojb.odmg.TransactionImpl)
                                     at org.apache.ojb.odmg.TransactionImpl.checkpoint(TransactionImpl.java:443)

       * for ole object:
             * example torque column declaration
                    * <column name="ICON_BLOB" type="LONGVARBINARY"/>

              * example ojb field-descriptor
                    * <field-descriptor name="iconBlob" column="ICON_BLOB"  jdbc-type="VARBINARY"/>


Re: msaccess memo and ole object types

Posted by Thomas Mahler <th...@web.de>.
Hi Mark,

I don't believe you will have much success using access via the 
JdbcOdbcBridge.

1. Limitations of Access. We had to tweak OJB at several places to make 
it work at all (other O/R tools do not even support Access!). For 
example Access does not support transactions.

2. Limitations of the JdbcOdbcDriver. This Driver is one of the poorest 
pieces of software available. Use a different driver whenever possible!
(I don't know of any other JDBC driver for Access)

3. The combination of these crappy pieces of software is even worse :-(

4. Personal experience. I never managed to get OJB use the Access data 
types MEMO, LONGTEXT, LONGBINARY, etc.
If you (against all probability) find any way to get this work, please 
tell me. I'll write a little howto to assist others.

My personal recommendation: change to a *real* database (migrating 
Access databases to MS SQL Server is very easy).
Use a good native JDBC driver like the JSQLConnect driver 
(http://www.j-netdirect.com/).

cheers,
Thomas


Mark Neighbors wrote:
> Hi,
> 
> Does anyone have the correct configuration for msaccess memo and ole object types?
> 
> The configuration listed here causes a hangup in the sun.jdbc.odbc classes.
> The thread dump from a ctl-break is also listed below.
> 
> Thanks in advance,
> Mark
> ___________________________________________________________________________
> 
> * configuration
> 
>        * sql\base\msaccess\db.props in torque-3.0.jar
>               LONGVARCHAR = MEMO
>                   * unchanged
>               BINARY = longbinary
>               VARBINARY = longbinary
>               LONGVARBINARY = longbinary
>                   * changed as per the second table in http://admin.nj.devry.edu/~kjudge/accessddl.htm
>               ...
> 
>        * for memo:
>              * example torque column declaration
>                     * <column name="DESCRIPTION"  type="LONGVARCHAR"/>
> 
> 
>               * example ojb field-descriptor
>                     * <field-descriptor name="description" column="DESCRIPTION"  jdbc-type="VARCHAR"/>
>                            * This works up to the 255 character length limit
> 
>                     * <field-descriptor name="description" column="DESCRIPTION"  jdbc-type="LONGVARCHAR"/>
>                            * This hangs in
> 
>                                      at sun.jdbc.odbc.JdbcOdbcObject.CharsToBytes(JdbcOdbcObject.java:326)
>                                      at
> sun.jdbc.odbc.JdbcOdbcPreparedStatement.setCharacterStream(JdbcOdbcPreparedStatement.java:2401)
>                                      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>                                      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>                                      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>                                      at java.lang.reflect.Method.invoke(Method.java:324)
>                                      at
> org.apache.ojb.broker.util.batch.PreparedStatementInvocationHandler.doExecute(PreparedStatementInvocationHandler.java:173)
>                                      at
> org.apache.ojb.broker.util.batch.PreparedStatementInvocationHandler.invoke(PreparedStatementInvocationHandler.java:140)
>                                      at $Proxy0.doExecute(Unknown Source)
>                                      at org.apache.ojb.broker.util.batch.BatchConnection.executeBatch(BatchConnection.java:179)
>                                      at
> org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.executeBatch(ConnectionManagerImpl.java:326)
>                                      at org.apache.ojb.odmg.ObjectEnvelopeTable.commit(ObjectEnvelopeTable.java:188)
>                                      at org.apache.ojb.odmg.TransactionImpl.doCommitOnObjects(TransactionImpl.java:326)
>                                      - locked <07BD5420> (a org.apache.ojb.odmg.TransactionImpl)
>                                      at org.apache.ojb.odmg.TransactionImpl.checkpoint(TransactionImpl.java:443)
> 
>        * for ole object:
>              * example torque column declaration
>                     * <column name="ICON_BLOB" type="LONGVARBINARY"/>
> 
>               * example ojb field-descriptor
>                     * <field-descriptor name="iconBlob" column="ICON_BLOB"  jdbc-type="VARBINARY"/>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
> 
>