ResulSet

3 respostas
andredeividi

Ola pessoal

Estou com um problema serio.

vou descrever qual é o problema

Entrei em um projeto onde o sistema foi desenvolvido em 2001
usando aplet, dessa forma o sistema esta meu defasado, e um dos maiores problemas e os relatorios que não permite subgrupos.

Estou olhando algumas ferrametas para modelagem de relatorios como
o BIrt, Ireport …etc.

Porem a curva de aprendizado sera um pouco estensa, então estou tentando resolver o problema usando a ferramenta atual que eu possuo,

Esse relatorio funciona da seguinte maneira.

monto um sql atravez de filtros na tela corforme o usuario desejar
o que muito padrão.

apos isso executo um ResulSet

exemplo em um caso bem simples:

String sql ="Select id from cliente";

ResultSet rs = stmt.executeQuery(sql);

rel.setConsulta(rs); // aqui eu estou passando os dados para o relatorio

aqui vai um pedaço do meu codigo.
Aqui eu tenho um while execuntando varias consultas atravez do ids da
tabela principal.

ResultSet rsNr = stmt.executeQuery("Select NR_REQM from req_material");
            
            while (rsNr.next()){
                rsItens=stmt2.executeQuery("select a.item,a.descricao,e.qtde_solic,qtde_aplic,e.nr_pedprod,e.dt_req,i.nm_usu,e.nm_usu,i.nr_reqm " +
                " from estoque a inner join  req_material_produto e on (a.item=e.item_est) inner join " +
                " req_material i on (e.nr_reqm=i.nr_reqm)" +
                " where i.nr_reqm='"+rsNr.getString("NR_REQM")+"'");
                
            }
           
            rel.setConsulta(rsItens);

Tem como eu jogar um resultset dentro do outro?
ou tem de alguma maneira juntar essas consultas em uma so.

desde ja agradeço

3 Respostas

KWill

Sugeriria a você estudar um pouco de SQL. Tenho quase que certeza de que é possível juntar os resultados de 2 querys usando SQL, não tentando juntar os ResultSets JDBC. Se não me engano, é um conceito conhecido como JOIN.

andredeividi

Na verdade e possivel juntar 2 sql ou mais
usando o union

so que para usar o union eu tenho de saber quantas consultas eu preciso fazer oque não é caso.

conforme esse codigo descreve bem o quanto isso pode variar
ResultSet rsNr = stmt.executeQuery("Select NR_REQM from req_material"); //todos os ids
             
             while (rsNr.next()){
                 rsItens=stmt2.executeQuery("select a.item,a.descricao,e.qtde_solic,qtde_aplic,e.nr_pedprod,e.dt_req,i.nm_usu,e.nm_usu,i.nr_reqm " +
                 " from estoque a inner join  req_material_produto e on (a.item=e.item_est) inner join " +
                 " req_material i on (e.nr_reqm=i.nr_reqm)" +
                 " where i.nr_reqm='"+rsNr.getString("NR_REQM")+"'");
// no where o filtro e feito pelo id pego no rsNr.
                 
             }
            
             rel.setConsulta(rsItens);

Mas de qualquer forma eu agradeço

KWill

To vendo agora, join no sql serve pra juntar tabelas, falei besteirol. Eu acabei descobrindo uma interface chamada JoinRowSet. Talvez valha a pena você tentar pesquisar um pouco sobre ela. Cuidado, posso ter escrito besteira denovo…

Criado 26 de setembro de 2006
Ultima resposta 26 de set. de 2006
Respostas 3
Participantes 2