if ( m_resultSet == null ) return null;
	public IResultObject fetch( ) throws DataException	{	    final String methodName = "fetch";		try		{			if( ! m_resultSet.next( ) )				return null;		}		catch( OdaException ex )		{		    sm_logger.logp( Level.SEVERE, sm_className, methodName,		            		"Cannot fetch next row.", ex );			throw new DataException( ResourceConstants.CANNOT_FETCH_NEXT_ROW, ex );		}		catch( UnsupportedOperationException ex )		{		    sm_logger.logp( Level.SEVERE, sm_className, methodName,		            		"Cannot fetch next row.", ex );			throw new DataException( ResourceConstants.CANNOT_FETCH_NEXT_ROW, ex );		}		int columnCount = m_resultClass.getFieldCount();		int[] driverPositions = 			( (ResultClass) m_resultClass ).getFieldDriverPositions();		assert( columnCount == driverPositions.length );				Object[] fields = new Object[ columnCount ];				for( int i = 1; i <= columnCount; i++ )		{			if ( m_resultClass.isCustomField( i ) == true )				continue;						Class dataType = m_resultClass.getFieldValueClass( i );			int driverPosition = driverPositions[i - 1];			Object colValue = null;						if( dataType == Integer.class )			{				int j = getInt( driverPosition );				if( ! wasNull() )					colValue = new Integer( j ); 			}			else if( dataType == Double.class )			{				double d = getDouble( driverPosition );				if( ! wasNull() )					colValue = new Double( d );			}			else if( dataType == String.class )				colValue = getString( driverPosition );			else if( dataType == BigDecimal.class )				colValue = getBigDecimal( driverPosition );			else if( dataType == java.util.Date.class )				colValue = getDate( driverPosition );			else if( dataType == Time.class )				colValue = getTime( driverPosition );			else if( dataType == Timestamp.class )				colValue = getTimestamp( driverPosition );			else if( dataType == IBlob.class )				colValue = getBlob( driverPosition );			else if( dataType == IClob.class )				colValue = getClob( driverPosition );			else				assert false;						if( wasNull( ) )				colValue = null;						fields[i - 1] = colValue;		}				IResultObject ret = new ResultObject( m_resultClass, fields );		sm_logger.logp( Level.FINEST, sm_className, methodName, 		            		"Fetched next row: {0} .", ret );		return ret;	}