[RESOLVIDO]SQLServer Stored Procedure não retorna nada

2 respostas
T

Estou tentando obter o retorno de uma Stored Procedure mas não retorna de maneira alguma Tentei todos os exemplos no forum , com callablestatment , com preparedstatment, mas nenhum funciona

Meu codigo java esta assim
public class TestaSP {
    public static void main(String[] args)
    {
        try
        {
            AcessoSqlServer sqls = new AcessoSqlServer();
            Connection con = sqls.conectar();
            PreparedStatement pstm =  con.prepareStatement("exec sp_usuario_duplica_frente 2,1,'ricardo',0");
           /**
            pstm.setInt(1,2);
            pstm.setInt(2, 1);
            pstm.setString(3, "ricardo");
            pstm.setInt(4, 0);
            * */
            //pstm.execute();
            ResultSet rs = pstm.executeQuery();                      
            while(rs.next())
            {
                System.out.println(rs.getString(1));
            }
            con.close();
        }catch(Exception ex)
        {
            ex.printStackTrace();
        }
        
        
                
    }
}
a minha SP esta assim
USE [desenvolvimento]
GO
/****** Object:  StoredProcedure [dbo].[sp_usuario_duplica_frente]    Script Date: 03/05/2012 11:23:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_usuario_duplica_frente]
	(@user_codigo INT,
	 @cfg_caixa INT,
	 @user_login NVARCHAR(10),
	 @user_codigo_ret INT OUTPUT)
AS
BEGIN
    -- Verifica se existe o usuario, caso nao exista ele insere o cliente mas concatenando
    -- com o numero do caixa
	SET @user_codigo_ret = ISNULL((SELECT user_codigo FROM usuario WHERE user_login = @user_login +'_' + CONVERT(NVARCHAR(10),@cfg_caixa)),'0')
	IF  @user_codigo_ret = 0 BEGIN
	
		INSERT INTO usuario (user_nome , user_login, user_senha,user_email,user_filial,
							user_ativo,user_session,user_bloq,user_atual,user_tmk_ativo,
							user_status,user_manut,user_dept,user_funct, [status])
							 --Values
		SELECT user_nome ,@user_login +'_' + CONVERT(NVARCHAR(10),@cfg_caixa), user_senha,user_email,user_filial,
				user_ativo,user_session,user_bloq,user_atual,user_tmk_ativo,
				user_status,user_manut,user_dept,user_funct, [status]
		FROM usuario 
		WHERE user_codigo = @user_codigo
		set @user_codigo_ret = (select ident_current('usuario'))
		
	END
END
SELECT user_codigo FROM usuario WHERE user_codigo = @user_codigo_ret

Alguem tem uma luz?? , muito obrigado!

2 Respostas

A

Tente utilizar o exemplo dado neste link:
http://msdn.microsoft.com/en-us/library/ms378108(v=sql.90).aspx

E evite prefixar suas procedures com sp no Sql Server.
Não é uma boa prática.

T

AbelBueno:
Tente utilizar o exemplo dado neste link:
http://msdn.microsoft.com/en-us/library/ms378108(v=sql.90).aspx

E evite prefixar suas procedures com sp no Sql Server.
Não é uma boa prática.

Funcionou perfeitamente!!, muito obrigado você quebrou um galhão!!

Criado 5 de março de 2012
Ultima resposta 5 de mar. de 2012
Respostas 2
Participantes 2