cziegeler    2002/09/22 23:38:50

  Modified:    src/java/org/apache/cocoon/transformation Tag:
                        cocoon_2_0_3_branch SQLTransformer.java
  Log:
  Fixing prefix bug in sql transformer
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.10.2.2  +20 -7     
xml-cocoon2/src/java/org/apache/cocoon/transformation/SQLTransformer.java
  
  Index: SQLTransformer.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/transformation/SQLTransformer.java,v
  retrieving revision 1.10.2.1
  retrieving revision 1.10.2.2
  diff -u -r1.10.2.1 -r1.10.2.2
  --- SQLTransformer.java       19 Jun 2002 03:21:59 -0000      1.10.2.1
  +++ SQLTransformer.java       23 Sep 2002 06:38:50 -0000      1.10.2.2
  @@ -293,7 +293,7 @@
           this.outUri = getCurrentQuery().properties.getParameter( 
SQLTransformer.MAGIC_NS_URI_ELEMENT, NAMESPACE );
           this.outPrefix = getCurrentQuery().properties.getParameter( 
SQLTransformer.MAGIC_NS_PREFIX_ELEMENT, "" );
   
  -        if ( !"".equals( this.outPrefix ) && !"".equals( this.outUri ) ) {
  +        if ( !"".equals( this.outUri ) ) {
               super.startPrefixMapping( this.outPrefix, this.outUri );
           }
   
  @@ -356,7 +356,7 @@
                   getLogger().warn( "SQLTransformer: Could not close JDBC 
connection", e );
               }
           }
  -        if ( !"".equals( this.outPrefix ) && !"".equals( this.outUri ) ) {
  +        if ( !"".equals( this.outUri ) ) {
               super.endPrefixMapping( this.outPrefix );
           }
       }
  @@ -1150,18 +1150,27 @@
           }
   
           protected String getColumnValue( int i ) throws SQLException {
  -            return transformer.getStringValue( rs.getObject( i ) );
  +            String retval =  transformer.getStringValue( rs.getObject( i ) );
  +            if (rs.getMetaData().getColumnType(i) == 8)
  +            retval = transformer.getStringValue( rs.getBigDecimal( i ) );
  +            return retval;
           }
   
  +        //fix not applied here because there is no metadata from Name -> number and 
coltype
  +        //for a given "name" versus number.  That being said this shouldn't be an 
issue
  +        //as this function is only called for ancestor lookups.
           protected String getColumnValue( String name ) throws SQLException {
  -            return transformer.getStringValue( rs.getObject( name ) );
  +            String retval =  transformer.getStringValue( rs.getObject( name ) );
  +//          if (rs.getMetaData().getColumnType( name ) == 8)
  +//           retval = transformer.getStringValue( rs.getBigDecimal( name ) );
  +            return retval;
           }
   
           protected boolean next() throws SQLException {
               // if rv is not -1, then an SQL insert, update, etc, has
               // happened (see JDBC docs - return codes for executeUpdate)
               if ( rv != -1 )
  -                return true;
  +                return false;
               try {
                   if ( rs == null || !rs.next() ) {
                       //close();
  @@ -1282,7 +1291,11 @@
                                       transformer.start( this.row_name, attr );
                                       for ( int i = 1; i <= md.getColumnCount(); i++ 
) {
                                           transformer.start( md.getColumnName( i 
).toLowerCase(), attr );
  -                                        this.serializeData(manager, 
transformer.getStringValue( rs.getObject( i ) ));
  +                                        if ( md.getColumnType( i ) == 8 ) {  
//prevent nasty exponent notation
  +                                            this.serializeData(manager, 
transformer.getStringValue( rs.getBigDecimal( i ) ));
  +                                        } else {
  +                                            this.serializeData(manager, 
transformer.getStringValue( rs.getObject( i ) ));
  +                                        }
                                           transformer.end( md.getColumnName( i 
).toLowerCase() );
                                       }
                                       transformer.end( this.row_name );
  
  
  

----------------------------------------------------------------------
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