iReport - Query com parametro - Erro - AJUDA URGENTE

5 respostas
F

Bom dia!

estou com um relatório que possui uma sintaxe sql com clausula where dependente de um PARAMETRO!

‘select…where id_processo = $P{lista}’

Quando voce manda visualizar o relatorio ele pergunta qual o valor pra o parametro lista(que é exatamente o que eu quero) e me mostra o seguinte erro

Error preparing statement for executing the report query

:idea:

Erro ao preencher impressão … Error preparing statement for executing the report query :
SELECT p.id_processo, P.NUMPROC, PC.NOME as NMCONTRA, P.VALOR_TOTAL_MATERIA, P.DATA_DIST, R.NM_REGIAO, VA.DATA_PROV, VA.VALOR FROM PROCESSO P LEFT JOIN PESSOA PC on P.ID_CONTRA = PC.ID_PESSOA LEFT JOIN FORO F on F.ID_FORO = P.ID_FORO LEFT JOIN REGIAO R on R.ID_REGIAO = F.ID_REGIAO LEFT JOIN PROC_VALOR VA on VA.ID_PROCESSO = P.ID_PROCESSO WHERE P.ID_PROCESSO in ?
net.sf.jasperreports.engine.JRException: Error preparing statement for executing the report query : SELECT p.id_processo, P.NUMPROC, PC.NOME as NMCONTRA, P.VALOR_TOTAL_MATERIA, P.DATA_DIST, R.NM_REGIAO, VA.DATA_PROV, VA.VALOR FROM PROCESSO P LEFT JOIN PESSOA PC on P.ID_CONTRA = PC.ID_PESSOA LEFT JOIN FORO F on F.ID_FORO = P.ID_FORO LEFT JOIN REGIAO R on R.ID_REGIAO = F.ID_REGIAO LEFT JOIN PROC_VALOR VA on VA.ID_PROCESSO = P.ID_PROCESSO WHERE P.ID_PROCESSO in ? at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createStatement(JRJdbcQueryExecuter.java:192) at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:123) at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:683) at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:615) at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1203) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:842) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:795) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:63) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:402) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:234) at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:944) at java.lang.Thread.run(Unknown Source) Caused by: org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544569. Dynamic SQL Error SQL error code = -104 Token unknown - line 7, char 26 ? at org.firebirdsql.jdbc.AbstractPreparedStatement.(AbstractPreparedStatement.java:91) at org.firebirdsql.jdbc.FBPreparedStatement.(FBPreparedStatement.java:34) at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:682) at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:232) at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createStatement(JRJdbcQueryExecuter.java:162) … 11 more
Impressão não foi preenchida. Tente utilizar uma Fonte de Dados Vazia …

:idea:

No erro acima, na sintaxe quando tem where id_processo = ? , o :?: esta no lugar do $P{lista} que eu coloquei na query do relatorio

Ja tentei até mudar o tipo de classe do parametro para string, integer, long… e nada!

alguem pode me ajudar por favor, esse relatorio é urgente!!!

Grato pela atenção e paciencia! :smiley:

5 Respostas

D

Qual método do Jasper você está usando para carregar o relatório na sua classe Java?

Você está passando o HashMap de parametros?

F

Amigo,

Eu to visualizando o relatorio manualmente ainda, to simplesmente compilando ainda e ja ta me dando dor de kbça esse report.

Eu to com o modelo dele aberto no iReport ainda, extremamente simples. esse report ainda nao entrou na parte web

teoricamente, é um relatorio simples com um parametro sem valor nenhum, e o que o iReport fala quando tem parametro sem valor "qual valor voce quer para o parametro ‘list’? " ai eu do 15 que é um id qualquer e ele da aquele erro

F

NOTA:

O problema é que todo parametro que eu coloco na query ele no LOG embaixo do controle de saida, exibe como um ?

como no erro citado acima.

entao o qq eu tentei, substitui a query inteira por um novo parametro. Onde tinha a sintaxe sql, eu coloquei simplesmente

$P{sql}

e adicionei um novo parametro string

beleza, dai, na hora q eu visualizo o report, ele vai pergunta qual o valor do parametro sql.

Entao eu coloco a consulta sql (‘select…where id_processo in (14,15)’) beleza

soh q dai ele da o mesmo erro, ele no LOG substitui o ‘$P{sql}’ por um ‘?’

HELP!

M

Cara, faz um tempo que eu não vejo isso… mas se não me engano, você tem que chamar o parâmetro assim na query: $!P{param}

F

NegATivo :frowning:

Eu tentei ao invez de Where id in (…) -> where id =(…)

funcionou na primeira vez, dpois comeco a da pau de NOvo =Z

Criado 22 de janeiro de 2008
Ultima resposta 22 de jan. de 2008
Respostas 5
Participantes 3