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
private void setString( String paramName, String stringValue ) throws DataException
	{
		String methodName = "setString";
		
		if( supportsNamedParameter() )
		{
			doSetString( paramName, stringValue );
			return;
		}
		
		if( ! setStringUsingHints( paramName, stringValue ) )
		{
			sm_logger.logp( Level.SEVERE, sm_className, methodName, 
							"Cannot set string value {0} to parameter {1}.",
							new Object[] { stringValue, paramName } );
			
			throw new DataException( ResourceConstants.CANNOT_SET_STRING_PARAMETER, 
									 new Object[] { paramName } );
		}
	}
	private boolean setStringUsingHints( String paramName, String stringValue ) throws DataException
	{
		int paramIndex = getIndexFromParamHints( paramName );
		if( paramIndex <= 0 )
			return false;
		
		doSetString( paramIndex, stringValue );
		return true;
	}