Desespero - StoredProcedure do Firebird 2 e Java Jaybird - RESOLVIDO

[b]Boa noite amigos !
já pesquisei e não consegui executar uma stored procedure do firebird em java…
conheço firebird e nunca vi essa função call, que é apresentada em todos os exemplos que eu consegui… mas enfim…

o codigo é o listado abaixo, e dá o seguinte erro:

[i]

GDS Exception. Dynamic SQL Error
SQL error code = -104
Token unknown - line 1, char 1
{CALL

[/i]

enfim… como usar SP do firebird no java ?
obrigado.
[/b]

    		   System.out.println("Gravar a bagaça");
   	    	   CallableStatement SP = null;
   	    	   
   	    	   try
   	    	     {
    	    	    SP = ControlPanel.c.prepareCall("{CALL "+aspas+"Funcionarios_I"+aspas+"(?, ?)}");
   	    	        SP.setInt(1, 454);
   	    	        SP.setString(2, "Fabricio");
   	    	        SP.execute();
   	    	    	JOptionPane.showMessageDialog(null, "funcionou");	  
   	    	     }
   	    	   catch (SQLException f)
   	    	   {
   	    		  System.out.println(f.getMessage());   
   	    	   }

p.s. ‘aspas’ é pq uso dialect 3 no firebird. => aspas = ‘"’;

Olá, tente executar com o PreparedStatement deste jeito:

nome_da_procedure = teste;

PreparedStatement  stmt  = (nome_da_sua_conexao).prepareStatement(" EXECUTE teste(parametros)
// seta  os  parametros
stmt.setString(1,"teste");
stmt.setString(2,"teste2");
// executa
stmt.execute();

Se a stored procedure retornar algum valor ai você da um select comum ex:

nome_da_procedure = teste;

PreparedStatement  stmt  = (nome_da_sua_conexao).prepareStatement(" select * from teste(?,?)  );


// seta  os  parametros
stmt.setString(1,"teste");
stmt.setString(2,"teste2");
// executa
stmt.execute();

Valeu!

isso aí !!! muito obrigado !! com uma pequena alteração (inclui PROCEDURE na string stmt), os dois códigos funcionaram perfeitamente.

nome_da_procedure = teste;  
   
PreparedStatement  stmt  = (nome_da_sua_conexao).prepareStatement(" EXECUTE PROCEDURE teste(parametros) ");
// seta  os  parametros  
stmt.setString(1,"teste");  
stmt.setString(2,"teste2");  
 // executa  
stmt.execute();  

valeu amigo !