Problema com Parametro no Ireport

Pessoal estou começando a trabalhar com o ireport agora e bateu uma dúvida aparentemente simples, porém não estou conseguindo encontrar uma solução em lugar algum, já li vários e vários post sobre isso mais não consegui resolver o problema.
tenho minha classe que passa um parametro para o relatório no ireport que está assim:

      [code]package relatorio;

import java.util.HashMap;
import javax.swing.JOptionPane;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;

import utilitarios.conexao;

public class relatCliente {

conexao con = new conexao();

int codigo = 10; // valor para testar a passagem de parametros

public relatCliente() {
try
{
con.conecta();
con.executeSQL(“SELECT * from cliente”);
HashMap parameters = new HashMap();
parameters.put(“tcodigo”, codigo);
JRResultSetDataSource jrRS = new JRResultSetDataSource(con.resultset);
JasperPrint jasperPrint = JasperFillManager.fillReport(
“relatorio/relClientes.jasper”, parameters, jrRS);
JasperViewer.viewReport(jasperPrint, false);
}
catch (Exception erro)
{
JOptionPane.showMessageDialog(null,“deu erro =”+erro);
}
}

public static void main (String args[])
{
new relatCliente();
}
}[/code]

e no SQL do meu relatorio do ireport está assim:

select codigo,nome from cliente where codigo = $P!{tcodigo}

o problema é que todos os dados são exibidos no relatorio quando o executo, mas se eu deixar o select desta maneira

select codigo,nome from cliente where codigo = 10

ai funciona 100%, mostrando só o cliente de código 10. O que pode estar errado com o parametro, já que o mesmo chega até o relatório porém não funciona no select.

Se alguém puder dar uma dica ou tiver um exemplo que funcione eu agradeço! :smiley:

Está certo esse seu select? Eu trabalhei com o ireport/jasperreport sem sql, apenas passando vo. O que estou vendo de diferente é que vc tem um ! no seu parâmetro. Não seria apenas $P{tcodigo} ?