Que valor prepareCall() retorna?

1 resposta
N

bom dia, estou tendo problemas come essa rotina e acredito que se deve ao fato de eu estar retornando valor errado
gostaria de saber que valor o método preparecall() retorna, pq acho que no caso da rotina está retornando null.
muito obrigado...

try 
		{	
			synchronized(this)
			{
				con = pool.getConnection();
				CallableStatement tsmt = con.prepareCall("{call SPI_WMS_SEPARACAO(?,?,?,?,?)}");
				System.out.println("Tempo Driver: "+DriverManager.getLoginTimeout());
				tsmt.setInt(1, armazem);
				tsmt.setString(2, codigoplu);
				tsmt.setString(3, endereco);
				tsmt.setInt(4, quantidade);
				tsmt.setInt(5, numnf);
						
				rs = tsmt.executeQuery();

				while(rs.next())
				{
					separacao = new Separacao();
					separacao.setSt(Integer.valueOf(rs.getInt("st")));
					separacao.setDescricao(rs.getString("descricao"));
					return separacao;
				}
				rs.close();
				tsmt.close();
			}
		} 
		catch(SQLException e) 
		{   
			System.out.print(e.getMessage());
			e.printStackTrace();
		}
		
		catch(NumberFormatException e)
		{
			System.out.print(e.getMessage());
		}
		finally
		{
			pool.liberarConnection(con);
		}
		return separacao;
	}

1 Resposta

FacaNaCaveira

Fala ai nykel,

Eu iria sugerir que primeiro vc verificasse o que essa Stored Procedute SPI_WMS_SEPARACAO faz? Pois pelo nome dela me parece que ela faz um INSERT, se esse for o caso realmente ela nao irá retornar nada. Ai o seu codigo terá que mudar na parte do

rs = tsmt.executeQuery();

para baixo.
Estou dizendo isso pois aki na empresa utilizamos uma nomenclatura semelhante para Stored Procedures

SPS = Stored Procedures de SELECT
SPI = Stored Procedures de INSERT
SPU = Stored Procedures de UPDATE
SPD = Stored Procedures de DELETE

SPUI = = Stored Procedures de UPDATE e INSERT

De repente o seu problema esteja no tipo de SP, esperando resultado de um SP de INSERT

Abração :!:
Max

Criado 20 de julho de 2010
Ultima resposta 20 de jul. de 2010
Respostas 1
Participantes 2