Bug 145925 exception thrown out when create attached report using engine API
the following exception was thrown out in Java console when run, render, and runandrender attached reports respectively using engine API. SEVERE: Cannot find input parameter. java.lang.UnsupportedOperationException: No named Parameter supported. at org.eclipse.birt.report.data.oda.jdbc.Statement.findInParameter(Statement.java:661) at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQuery.findInParameter(OdaQuery.java:985) at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.findInParameter(PreparedStatement.java:2649) at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.getRuntimeParameterIndexFromName(PreparedStatement.java:1549) at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.updateWithParameterHints(PreparedStatement.java:1513) at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.mergeParamHintsWithMetaData(PreparedStatement.java:1455) at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.getParameterMetaData(PreparedStatement.java:1336) at org.eclipse.birt.data.engine.executor.DataSourceQuery.getParameterMetaData(DataSourceQuery.java:433) at org.eclipse.birt.data.engine.executor.DataSourceQuery.hasOutputParams(DataSourceQuery.java:518) at org.eclipse.birt.data.engine.executor.DataSourceQuery.execute(DataSourceQuery.java:487) at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery$OdaDSQueryExecutor.executeOdiQuery(PreparedOdaDSQuery.java:257) at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:677) at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:147) at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:159) at org.eclipse.birt.report.engine.data.dte.DteResultSet.<init>(DteResultSet.java:100) at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:121) at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:214) at org.eclipse.birt.report.engine.presentation.LocalizedEmitter.executeQueries(LocalizedEmitter.java:864) at org.eclipse.birt.report.engine.presentation.LocalizedEmitter.startExtendedContent(LocalizedEmitter.java:676) at org.eclipse.birt.report.engine.presentation.LocalizedEmitter.startForeign(LocalizedEmitter.java:448) at org.eclipse.birt.report.engine.presentation.WrappedEmitter.startForeign(WrappedEmitter.java:209) at org.eclipse.birt.report.engine.presentation.DefaultPaginationEmitter.startForeign(DefaultPaginationEmitter.java:488) at org.eclipse.birt.report.engine.executor.ExtendedItemExecutor.execute(ExtendedItemExecutor.java:103) at org.eclipse.birt.report.engine.executor.ReportExecutorVisitor.visitExtendedItem(ReportExecutorVisitor.java:83) at org.eclipse.birt.report.engine.ir.ExtendedItemDesign.accept(ExtendedItemDesign.java:30) at org.eclipse.birt.report.engine.executor.TableItemExecutor.accessRow(TableItemExecutor.java:644) at org.eclipse.birt.report.engine.executor.TableItemExecutor.accessTableBand(TableItemExecutor.java:521) at org.eclipse.birt.report.engine.executor.TableItemExecutor.accessGroupHeader(TableItemExecutor.java:462) at org.eclipse.birt.report.engine.executor.ListingElementExecutor.accessQuery(ListingElementExecutor.java:185) at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:158) at org.eclipse.birt.report.engine.executor.ReportExecutorVisitor.visitTableItem(ReportExecutorVisitor.java:205) at org.eclipse.birt.report.engine.ir.TableItemDesign.accept(TableItemDesign.java:69) at org.eclipse.birt.report.engine.executor.ReportExecutor.execute(ReportExecutor.java:129) at org.eclipse.birt.report.engine.executor.ReportExecutor.execute(ReportExecutor.java:89) at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:171) at org.eclipse.birt.test.performance.RunRenderThread.run(RunRenderThread.java:105)
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/odaconsumer/PreparedStatement.java
return;
		}
		
		if( ! setDoubleUsingHints( paramName, d ) )
		{
			sm_logger.logp( Level.SEVERE, sm_className, methodName, 
							"Cannot set double value {0} to parameter {1}.",
							new Object[] { new Double( d ), paramName } );
			
			throw new DataException( ResourceConstants.CANNOT_SET_DOUBLE_PARAMETER, 
									 new Object[] { paramName } );
		}
	}
	
	private boolean setDoubleUsingHints( String paramName, double d ) throws DataException
	{
		int paramIndex = getIndexFromParamHints( paramName );
		if( paramIndex <= 0 )
			return false;
		
		doSetDouble( paramIndex, d );
		return true;
	}
	private void setString( String paramName, int paramIndex, String stringValue ) throws DataException
	{
		if( paramName == null )
			doSetString( paramIndex, stringValue );
		else
			setString( paramName, stringValue );
	}