haul        2002/07/05 07:40:41

  Modified:    src/java/org/apache/cocoon/components/language/markup/xsp
                        EsqlHelper.java
  Log:
  Support xLOBs with CallableStatements
  
  Revision  Changes    Path
  1.11      +75 -1     
xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/EsqlHelper.java
  
  Index: EsqlHelper.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/language/markup/xsp/EsqlHelper.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- EsqlHelper.java   10 Jun 2002 09:01:52 -0000      1.10
  +++ EsqlHelper.java   5 Jul 2002 14:40:41 -0000       1.11
  @@ -53,6 +53,7 @@
   import java.io.BufferedInputStream;
   import java.io.BufferedReader;
   import java.io.Reader;
  +import java.sql.CallableStatement;
   import java.sql.ResultSet;
   import java.io.InputStream;
   import java.sql.Blob;
  @@ -112,6 +113,30 @@
           }
       }
   
  +    /** returns byte array from BLOB
  +     */
  +    public final static byte[] getBlob(CallableStatement cs, int column) throws 
java.lang.Exception {
  +        
  +        InputStream reader = null;
  +        byte[] buffer = null;
  +    
  +        try {
  +            Blob dbBlob = cs.getBlob(column);
  +            int length = (int) dbBlob.length();
  +            reader = dbBlob.getBinaryStream();
  +            buffer = new byte[length];
  +            reader.read(buffer);
  +            reader.close();
  +            if (reader != null)
  +                reader.close();
  +            if (buffer == null)
  +                return null;
  +            return buffer;
  +        } catch ( Exception e) {
  +            throw new RuntimeException("Error getting blob data: " + 
e.getMessage());
  +        }
  +    }
  +
       /** returns Unicode encoded string from CLOB or String column 
        */
       public final static String getStringOrClob(ResultSet set, String column) throws 
RuntimeException {
  @@ -154,6 +179,30 @@
           }
       }
   
  +    /** returns Unicode encoded string from CLOB or String column 
  +     */
  +    public final static String getStringOrClob(CallableStatement cs, int column) 
throws java.lang.Exception {
  +        
  +        Reader reader = null;
  +        char[] buffer = null;
  +    
  +        try {
  +            Clob dbClob = cs.getClob(column);
  +            int length = (int) dbClob.length();
  +            reader = new BufferedReader(dbClob.getCharacterStream());
  +            buffer = new char[length];
  +            reader.read(buffer);
  +            reader.close();
  +            if (reader != null)
  +                reader.close();
  +            if (buffer == null)
  +                return "";
  +            return new String(buffer);
  +        } catch ( Exception e) {
  +            throw new RuntimeException("Error getting clob data: " + 
e.getMessage());
  +        }
  +    }
  +
   
       /** returns ascii string from CLOB or String column 
        */
  @@ -196,6 +245,31 @@
               }
           }
           
  +        return result;
  +      }
  +
  +    /** returns ascii string from CLOB or String column 
  +     */
  +    public final static String getAscii(CallableStatement cs, int column) {
  +        InputStream asciiStream = null;
  +        String result = null;
  +
  +        try {
  +            byte[] buffer = null;
  +            Clob dbClob = cs.getClob(column);
  +            int length = (int) dbClob.length();
  +            asciiStream = new BufferedInputStream(dbClob.getAsciiStream());
  +            buffer = new byte[length];
  +            asciiStream.read(buffer);
  +            asciiStream.close();
  +            result = (buffer!=null? new String(buffer) : null);
  +        } catch (Exception e) {
  +            throw new RuntimeException("Error getting clob data: " + 
e.getMessage());
  +        } finally {
  +            if (asciiStream != null) try {asciiStream.close();} catch (Exception 
ase) {
  +                throw new RuntimeException("Error closing clob stream: " + 
ase.getMessage());
  +            }
  +        }
           
           return result;
         }
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to