Select em um subrelatorio no Ireport

9 respostas
homisinho

o meu select é:

select * from temprelat
where CODLISTA = $P{CODL} and
DATA = $P{DTA} and
HORA = $P{HRA} and
DESCUNID = $P{UNI}
order by PENDULO

c eu tirar dois parametros e da data e o da hora funciona o select retorna os campos…
eu declarei o CODL: java.lang.Integer e no Defaul Value Expression new Integer(2);

eu declarei o DTA: java.util.Date e no Defaul Value Expression new java.util.Date();

eu declarei o HRA: java.lang.String e no Defaul Value Expression new String(“11:49:05”);

eu declarei o UNI: java.lang.String e no Defaul Value Expression new String(“A 1”);

como ele esta ai em cima ele da o erro “Error converting to object” :oops:
agora n sei o q fazer…
ja esgotei minhas tentativas…
c alguem tive uma dica agradeço!!!

9 Respostas

otaviofcs

cara, você tem que formatar o campo corretamente num formato SQL. em qual sql você espera passar um campo tipo data/hora com o padrão HH:MM:SS e sem aspas nem nada. Só se fosse um preparedStatement, o que não é o caso (no caso desse teu campo hora, nem isso).

homisinho

seguinte n minha base de dados eu tenho dois campos um
data do tipo date, e um hora do tipo string…

acredito q o ireport trate uma string corretamente…??
queria saber como fazer isso funcionar! tem uma sugestão??

J

Ola amigo, minha sugestão inicial é a de filtrar o erro, ou seja, como ja sabe que pode estar entre a data ou a hora tente com um por ver para ver se o erro se encontra na data na hora ou em ambos, detectando isso fica mais facil.
Sim, o IReport manipula Strings sem problema algum, em seu banco de dados o tipo definido para hora esta como varchar ou time?

homisinho

ele ta declarado como char.
eu testei separado e ta dando problema nos dois campos…
no da data e no da hora…
estranho pq o parametro UNI foi declarado da mesma forma q a hora e funciona…
tem alguma ideia???

J

Inicialize o seu parâmetro data assim:

new java.sql.Timestamp(0)

e lá na consulta faça assim:

select * from temprelat 
where CODLISTA = $P{CODL} and 
trunc(DATA) = trunc($P{DTA}) and 
HORA = $P{HRA} and 
DESCUNID = $P{UNI} 
order by PENDULO
homisinho

coloquei como vc falou e deu o seguinte erro:
SQL problems: GDS Exception. 335544569.Dynamic SQL ErrorSQL error code =-804Function unknown TRUNC

isso deve c algum detalhe muito pequeno!!!
tem mais alguma ideia???

J

A bom, isso é pra banco Oracle numa coluna do tipo Date.

Eu nem perguntei o banco que você tá usando né, foi mal…

homisinho

to usando o firebird…

otaviofcs

Gente, quanta marreta. Pô dá um

new SimpleDateFormat("YYYY/MM/DD").format($P{DATA}) <- o tipo do parâmetro tem que ser necessariamente um Date()

e bota as aspas simples tanto do na hora quanto na data…

Criado 12 de janeiro de 2007
Ultima resposta 12 de jan. de 2007
Respostas 9
Participantes 4