Oi Cláudio, seu problema maior não é com o ResultSet, e sim com seu pequeno 
conhecimento em SQL. Procure alguma apostila e estude como fazer select com join, 
group by, funcoes de agregação... todo esse programa que voce fez pode ser feito com 
apenas uma consulta bem feita ao banco de dados, e com um tempo de resposta 
"infinitamente" melhor.
    Falou!
 
===========================================
Francisco Deisimar Nobre Júnior
Analista de Sistemas - CIT - M. Dias Branco
===========================================
 

 -----Mensagem original-----
De: Cláudio R. Lanzilotti [mailto:[EMAIL PROTECTED]]
Enviada em: terça-feira, 23 de julho de 2002 19:43
Para: [EMAIL PROTECTED]
Assunto: [java-list] Resultset



Ola Pessoal, sou iniciante em Java e preciso de um help no uso do ResultSet......
 
No código abaixo estou tendo problemas de memória no servidor de banco de dados, é o 
seguinte:
 
- executo o programa na minha estação
- no servidor faço o monitormanento de memória pelo Task Manager e a memória é 
consumida em questão de minutos, até que a aplicação é abortada....
Fazendo alguns testes consegui resolver eliminando os 2 ResultSets rstAux que crio no 
terceiro loop...
O fato é que seguindo exemplos de livros e do help consegui montar este programa, e na 
verdade não sei estou utilizando os componentes de forma correta....
 
Se alguém puder ajudar agradeço desde já.......
 
Servidor: Win2000 Server c/ SQL Server 2000
Minha estação: Win2000 Pro + J2SDK 1.4.0
 
Valeu !!
 
Claudio
 
 
import java.io.*;
import java.net.*;
import java.sql.*;
import java.util.*;
import java.lang.reflect.Array;
 
public class tsthelp
{
          public static void main(String args[]) throws Exception
          {
                Properties prop = new Properties();
                prop.put("user","HELP");
                prop.put("password","HELP");
                prop.put("serverVersion","Sql7");
                String url = "jdbc:AvenirDriver://SERVIDOR:1433/HELPMIG";
                Class.forName ("net.avenir.jdbc2.Driver");
                Connection ctn= DriverManager.getConnection(url,prop);
 
                Statement stmtEven = 
ctn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
                Statement stmtEmpr = 
ctn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
                Statement stmtFunc = 
ctn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
                Statement stmtAux  = 
ctn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
 
                ResultSet rstAux;
 
                strSQL = " SELECT CODIGOEVENTO, NOMEVENTO, TEMQTDE, TEMVALOR"
                       + "   FROM TB_EVENTO";
                ResultSet rstEven = stmtEven.executeQuery(strSQL);
 


                strSQL = " SELECT CODIGOEMPRESA, NOMEEMPRESA"
                       + "  WHERE TB_EMPRESA";
                ResultSet rstEmpr = stmtEmpr.executeQuery(strSQL);
 
                while(rstEmpr.next())
                {
 
                  strSQL = " SELECT CODIGOFUNC, NOMEFUNC"
                         + "   FROM TB_FUNC"
                         + "  WHERE CODIGOEMPRESA = " + 
rstEmpr.getLong("CODIGOEMPRESA")
                  ResultSet rstFunc = stmtFunc.executeQuery(strSQL);
 
                  while(rstFunc.next())
                  {
 
                    strSQL = "  SELECT CODIGOLANCTO, VALORLANCTO"
                           + "    FROM TB_LANCFUN"
                           + "   WHERE CODFUNC = " + rstFunc.getLong("CODFUNC")
                    ResultSet rstLanc = stmtLanc.executeQuery(strSQL);
 
                    while( ! rstEven.next() )
                    {
 
                          if ( rstEven.getString("TEMQTDE") == 'S' )
                          {
                            strSQL = " SELECT QTDE"
                                   + "   FROM TB_VALQTDE"
                                   + "  WHERE CODIGOFUNC = " + 
rstFunc.getLong("CODIGOFUNC");
                            rstAux = stmtAux.executeQuery(strSQL);
 
                            rstAux.beforeFirst();
                            if ( rstAux.next() )
                            {
                              dblTotQtde += rstAux.getDouble("QTDE");
                            }
                            rstAux.close();
                          }
 
                          if ( rstEven.getString("TEMVALOR") == 'S' )
                          {
                            strSQL = " SELECT VALOR"
                                   + "   FROM TB_VALVALOR"
                                   + "  WHERE CODIGOFUNC = " + 
rstFunc.getLong("CODIGOFUNC");
                            rstAux = stmtAux.executeQuery(strSQL);
 
                            rstAux.beforeFirst();
                            if ( rstAux.next() )
                            {
                              dblTotQtde += rstAux.getDouble("VALOR");
                            }
                            rstAux.close();
                          }
 
                    } // Evento
 
                  } // Func
 
                } // Empr
 
                stmtFunc.close();
                stmtEmpr.close();
                stmtEven.close();
                stmtAux.close();
          }
 
}
 
 


------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

Responder a