Problema com Results

9 respostas
warley

Boa tarde pessoal,

Pessoal eu estou tentando fazer algo do tipo:

String query1 = "Select * from produtos";
	String query2 = "Select * from gcmt vendedor";

	
	ResultSet res1 = stm.executeQuery(query1);
	
	while(res1.next()){
		
		ResultSet res2 = stm.executeQuery(query2); // Ocorre o erro aqui!
	
	}
	
	res1.close();

E sempre ocorre um erro! Será que em java eu não consigo fazer isto não! pq em vb eu faço numa boa!

Obs: Obrigatoriamente um result tem que ficar dentro de outro!

Obrigado

9 Respostas

T

Uma coisa é uma coisa e outra coisa é outra coisa…

No Javadoc diz:


javax.sql.Statement

The object used for executing a static SQL statement and obtaining the results produced by it.

Only one ResultSet object per Statement object can be open at any point in time. Therefore, if the reading of one ResultSet object is interleaved with the reading of another, each must have been generated by different Statement objects. All statement execute methods implicitly close a statment’s current ResultSet object if an open one exists.

Isso quer dizer em bom português que você precisa ter um Statement para cada ResultSet. Não tenha medo de criar variáveis…

warley

Obrigado pela ajuda!!

:lol:

warley

Bom, desculpe insistir mas ainda está ocorendo erro! :frowning:

Veja:

<%

	String query1 = "Select * from gcmtunimed";
	String query2 = "Select * from gcmtdctpdr";
	
	try{
            
            String url = "jdbc:odbc:gcm_teste";
			String usuario = "gcmuadmi";
			String senha = "Achiles";

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

	    	Connection con = DriverManager.getConnection(url, usuario, senha);
           
		    Statement stm1 = con.createStatement();
			Statement stm2 = con.createStatement();
       
			ResultSet res1 = stm1.executeQuery(query1);
           
		   	while(res1.next()){
		
				ResultSet res2 = stm2.executeQuery(query2); // Ocorre o erro aqui!
								
			}
		
		   
            
        }catch(Exception e){
            out.print("ERRO");
        }
	
		
%>
_fs

Qual a mensagem de erro que está recebendo?

warley

Me respondam uma coisa!

Poquê eu não consigo fazer algo do tipo:

String url = "jdbc:odbc:gcm_teste";
			String usuario = "gcmuadmi";
			String senha = "Achiles";

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

	    	Connection con = DriverManager.getConnection(url, usuario, senha);
           
		    Statement stm1 = con.createStatement();
			Statement stm2 = con.createStatement(); 
			     		
			ResultSet res1 = stm1.executeQuery(query1);
			ResultSet res2 = stm2.executeQuery(query2);// Ocorre o erro aqui!
caiofilipini

Qual é o erro? Sem a mensagem e o stack trace, fica difícil… :roll:

warley

O Problema que ele não está nostrando mesagem de erro! Pq o sistema é web e ele não aceita que eu coloque catch

e.printStackTrace();

Então ele mostra o q está no catch --> “ERRO”

warley

Será que o problema está acontecendo pq eu estou usando ODBC?

T

Dica: em vez de usar

catch (Exception ex) { out.print ("ERRO"); }
use

catch (Exception ex) { out.println ("<pre>"); ex.printStackTrace (new PrintWriter (out)); out.println ("</pre>"); }

ou então não pegue o erro (use um throw ex; na cláusula catch) e deixe o Tomcat mostrar aquela página horrível de erro contendo o stack trace (que é o que você quer ver).

Criado 16 de agosto de 2004
Ultima resposta 17 de ago. de 2004
Respostas 9
Participantes 4