ResultSet com SP [Resolvido]

Olá pessoal, sei que para receber o resultado de um SELECT faço isso com um ResultSet assim:

try  
		{   
			Statement Stmt = conn.createStatement();   
			ResultSet rs = Stmt.executeQuery( SQLSelect );  
			while (rs.next()) {
				String Nome = (rs.getString("Nome_func"));
				System.out.println(Nome);
			}
			return rs; 
		}   
		catch( SQLException Erro )   
		{   
			Erro.printStackTrace();   
			System.out.println( "Não foi possível executar o comando: "  + SQLSelect);   
			throw new Exception( "Não foi possível executar a consulta desejada." );   
		}  

mas se for uma SP? que irá retornar somente uma mensagem? mas que tenha um update e um select nela por exemplo, oque irá receber essa sp pra mostrar o resultado na tela ? Tentei fazer o mesmo que no select mas me retornou um erro.

Obrigado!

fabio para trabalhar com procedures voce deve fazer um

  CallableStatement cs = conn.prepareCall("{call PROCEDURE(?,?,?)}");

Lembre-se que uma procedure não retorna valores. Uma procedure tem parametros IN, OUT ou IN/OUT.

Logo voce deve recuperar o valor que a procedure te passou de um parametro OUT.

Segue um link com exemplos de chamadas a procedure.

http://www.exampledepot.com/egs/java.sql/CallProcedure.html

Espero ter ajudado.

Blz! executou, só falta me retornar o resultado da sp, o site que me passou mostra pra retornar vesultado dos parametro de saída, mas no caso desta SP, é somente uma mensagem que irá retornar, essa msg ta armazenada em uma variavel da SP, como faço pra retornar essa msg?

Obrigado!

Fabio, faz a atribuição da variavel ao parametro out, dentro da SP.

Abraços.

[quote=mezini]Fabio, faz a atribuição da variavel ao parametro out, dentro da SP.

Abraços.[/quote]

Eu pensei em fzr isso tbm, quer dizer que terei que fazer todas as saídas das minhas sp como parametro de saída? Somente assim para retornar o resultado?

Obrigado!

[quote=mezini]Fabio, faz a atribuição da variavel ao parametro out, dentro da SP.

Abraços.[/quote]

fiz isso, mas naum deu certo:

public CallableStatement SQLSelect(String SQLSelect)   
	throws Exception   
	{   
		try  
		{   
			CallableStatement cs = conn.prepareCall(SQLSelect);  
			
			cs.execute(); 
			String outParam = cs.getString(1);     
			System.out.println(outParam);
			return cs; 
		}   
		catch( SQLException Erro )   
		{   
			Erro.printStackTrace();   
			System.out.println( "Não foi possível executar o comando: "  + SQLSelect);   
			throw new Exception( "Não foi possível executar a consulta desejada." );   
		}  
	}   

public void ValidaLogin(Funcionario func) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException {
		Conexao conn = new Conexao();
		
		conn.Conecta();
	
		String sql = "{call sp_ValidaUs('" + func.getLoginFunc() + "','" + func.getSenhaFunc() + "')}";
		try {
			conn.SQLSelect(sql);
			conn.Disconecta();
		} catch(Exception e1) {
			System.out.println("Erro!");  //cai aqui
		}
		conn.Disconecta();
	}

[quote=fabiojpoli][quote=mezini]Fabio, faz a atribuição da variavel ao parametro out, dentro da SP.

Abraços.[/quote]

Eu pensei em fzr isso tbm, quer dizer que terei que fazer todas as saídas das minhas sp como parametro de saída? Somente assim para retornar o resultado?

Obrigado![/quote]

Consegui com ajuda de um colega:

public CallableStatement SQLSelect(String SQLSelect)   
	throws Exception   
	{   
		try  
		{    
			CallableStatement cs = conn.prepareCall(SQLSelect);  
			cs.registerOutParameter(1, Types.VARCHAR);   
			cs.executeUpdate();     // ou executeQuery();   
			String outParam = cs.getString(1);          
			System.out.println(outParam); 
			
			cs.execute(); 
			/*String outParam = cs.getString(1);     
			System.out.println(outParam);*/
			return cs; 
		}   
		catch( SQLException Erro )   
		{   
			Erro.printStackTrace();   
			System.out.println( "Não foi possível executar o comando: "  + SQLSelect);   
			throw new Exception( "Não foi possível executar a consulta desejada." );   
		}  
	}   

public void validaLogin(Funcionario funcLog) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException {
		Conexao conn = new Conexao();
		
		conn.Conecta();

		String sql = "{call sp_ValidaUs('" + funcLog.getLoginFunc() + "','" + funcLog.getSenhaFunc() + "',?)}";
		try {
			conn.SQLSelect(sql);
		} catch(Exception e1) {
			System.out.println("Erro!"); 
		}
		conn.Disconecta();
	}

Vlw!