Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

paginad

Erro no retorno do parametro OUTPUT

Recommended Posts

Bom dia.

 

Estou criando uma SP, mais está dando um erro quando não tem um registro na base. Se encontra o registro eu consigo pegar o retorno com RS("strMsg") que retorna 1, mais quando ainda nao tem o registro da um erro no RS("strMsg") dizendo "O item não pode ser encontrado na coleção correspondente ao nome ou ao ordinal solicitado."

 

Se eu executar a SP no QueryAnalizer retorna 0 certinho, só na páginas ASP que dá o erro. Tem alguma coisa errada na sintaxe abaixo? Fora isso sem eu tirar o INSERT inteiro deixando só o SET @strMsg = 0 da certo...colocando o INSERT ferra tudo.

 

 

CREATE PROCEDURE [dbo].[sp_cadastro_base]

 

@nome VARCHAR(200),

@sexo VARCHAR(1),

@dt_nascimento VARCHAR(10),

@cpf VARCHAR(14),

@strMsg INT OUTPUT

 

AS

 

IF EXISTS (SELECT cpf FROM t_we_cadastro_base WHERE cpf = @cpf)

BEGIN

SET @strMsg = 1

END

ELSE

BEGIN

INSERT INTO t_we_cadastro_base (nome, sexo, dt_nascimento, cpf)

VALUES (@nome, @sexo, @dt_nascimento, @cpf)

SET @strMsg = 0

END

 

SELECT @strMsg as strMsg

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente trocar esta variavel

@strMsg INT OUTPUT

 

pelo tipo bigint ou ateh mesmo varchar e ve se rola

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

utilize o comando SET NOCOUNT ON logo depois do AS e antes do IF EXISTS, com isso ira retirar os avisos de linhas afetadas (1 row(s) affected)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.