You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by th...@apache.org on 2003/06/04 21:02:03 UTC

cvs commit: db-ojb/src/java/org/apache/ojb/broker/platforms PlatformMsAccessImpl.java

thma        2003/06/04 12:02:03

  Modified:    src/java/org/apache/ojb/broker/platforms
                        PlatformMsAccessImpl.java
  Log:
  Apply a patch from Raplh Brandes that allows to write to Access Memo columns.
  Any ideas how to fix the StringBufferInputStream  warnings?
  
  Revision  Changes    Path
  1.4       +27 -17    db-ojb/src/java/org/apache/ojb/broker/platforms/PlatformMsAccessImpl.java
  
  Index: PlatformMsAccessImpl.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/platforms/PlatformMsAccessImpl.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- PlatformMsAccessImpl.java	26 Jan 2003 12:44:37 -0000	1.3
  +++ PlatformMsAccessImpl.java	4 Jun 2003 19:02:03 -0000	1.4
  @@ -1,5 +1,4 @@
   package org.apache.ojb.broker.platforms;
  -
   /* ====================================================================
    * The Apache Software License, Version 1.1
    *
  @@ -53,7 +52,8 @@
    * information on the Apache Software Foundation, please see
    * <http://www.apache.org/>.
    */
  -
  +import java.io.StringBufferInputStream;
  +import java.io.InputStream;
   import java.math.BigDecimal;
   import java.sql.PreparedStatement;
   import java.sql.ResultSet;
  @@ -62,14 +62,12 @@
   import java.sql.Types;
   
   import org.apache.ojb.broker.util.logging.LoggerFactory;
  -
   /**
  - * @version 	1.0
  - * @author 	jakob br�uchi
  + * @version         1.0
  + * @author         jakob br�uchi
    */
   public class PlatformMsAccessImpl extends PlatformDefaultImpl
   {
  -
       /**
        * @see Platform#setObjectForStatement(PreparedStatement, int, Object, int)
        */
  @@ -94,20 +92,33 @@
                   super.setObjectForStatement(ps, index, value, sqlType);
               }
           }
  +        // patch by Ralph Brandes to allow writing to memo fields
  +        else if (sqlType == Types.LONGVARCHAR)
  +        {
  +            if (value instanceof String)
  +            {
  +                String s = (String) value;
  +                // ps.setCharacterStream(index, new StringReader(s), s.length());
  +                // for MSACCESS :
  +                
  +                InputStream ins = new StringBufferInputStream(s);
  +                
  +                ps.setAsciiStream(index, ins, s.length());
  +            }
  +            else
  +            {
  +                super.setObjectForStatement(ps, index, value, sqlType);
  +            }
  +        }
           else
           {
               super.setObjectForStatement(ps, index, value, sqlType);
           }
       }
   
  -    /*
  -     * @see Platform#ignoreAutocommitExceptions()
  +    /**
  +     * @see Platform#beforeStatementClose(Statement stmt, ResultSet rs)
        */
  -    public boolean ignoreAutocommitExceptions()
  -    {
  -        return true;
  -    }
  -
       public void beforeStatementClose(Statement stmt, ResultSet rs) throws PlatformException
       {
           if (rs != null)
  @@ -118,10 +129,9 @@
               }
               catch (SQLException e)
               {
  -            	LoggerFactory.getDefaultLogger().warn("Resultset closing failed (can be ignored for MsAccess)");
  +                LoggerFactory.getDefaultLogger().warn(
  +                    "Resultset closing failed (can be ignored for MsAccess)");
               }
           }
       }
  -
  -
  -}
  +}
  \ No newline at end of file