eventHandler );
eventHandler, session );
    public IResultIterator execute( IEventHandler eventHandler )			throws DataException	{    	assert odaStatement != null;    	this.setInputParameterBinding();		// Execute the prepared statement		if ( !odaStatement.execute( ) )			throw new DataException( ResourceConstants.NO_RESULT_SET );		ResultSet rs = odaStatement.getResultSet();				// If we did not get a result set metadata at prepare() time, get it now		if ( resultMetadata == null )		{			resultMetadata = rs.getMetaData();            if ( resultMetadata == null )    			throw new DataException(ResourceConstants.METADATA_NOT_AVAILABLE);		}				// Initialize CachedResultSet using the ODA result set		if ( DataSetCacheManager.getInstance( ).doesSaveToCache( ) == false )		{			if ( !hasOutputParams( ) )				return new CachedResultSet( this,						resultMetadata,						rs,						eventHandler );			else			{				IDataSetPopulator populator = new OdaResultSet( rs );				return new CachedResultSet( this,						resultMetadata,						populator,						eventHandler );			}		}		else			return new CachedResultSet( this,					resultMetadata,					new DataSetResultCache( rs, resultMetadata ),					eventHandler );    }