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]