valor de retorno

22/12/2004 - 15:43 por Gustavo Arriola | Informe spam
Hola a tod@s!!
Tengo un procedimiento que recibe parametros y antes de realizar altas
valida que los mismos no existan en la db.


CREATE PROCEDURE spimportar_recarga_nucleo
(
@linea varchar(10),
@nro_ss varchar(25),
@cod_vendedor varchar(15),
@carga_tarjeta money,
@comision_adl money,
@nro_comision smallint,
@id_empresa int,
@fecha_importacion varchar(17)
)

AS

DECLARE @estado int

SET @estado = (SELECT COUNT(*) FROM importar_recargas_nucleo WHERE
nro_ss=@nro_ss AND nro_comision=@nro_comision)

if (@estado=0)
begin
Insert Into importar_recargas_nucleo(linea, nro_ss ,cod_vendedor
,carga_tarjeta, nro_comision, comision_adl, id_empresa, fecha_importacion)
Values(@linea, @nro_ss, @cod_vendedor, @carga_tarjeta, @nro_comision,
@comision_adl, @id_empresa, @fecha_importacion)
goto Finalizar
end
else
begin
goto ErrorGrave
end


ErrorGrave:
Return 1

Finalizar:
Return 0
GO


El problema que tengo es que simpre me retorna un 0 (cero) por mas que
existan datos en la DB

¿Qué estoy haciendo mal?
Desde ya muchas gracias!
Gustavo

Preguntas similare

Leer las respuestas

#1 MAbanto
23/12/2004 - 00:55 | Informe spam
No haz probado usando una variable output???

"Gustavo Arriola" wrote:

Hola a !!
Tengo un procedimiento que recibe parametros y antes de realizar altas
valida que los mismos no existan en la db.


CREATE PROCEDURE spimportar_recarga_nucleo
(
@linea varchar(10),
@nro_ss varchar(25),
@cod_vendedor varchar(15),
@carga_tarjeta money,
@comision_adl money,
@nro_comision smallint,
@id_empresa int,
@fecha_importacion varchar(17)
)

AS

DECLARE @estado int

SET @estado = (SELECT COUNT(*) FROM importar_recargas_nucleo WHERE
nro_ss=@nro_ss AND nro_comision=@nro_comision)

if (@estado=0)
begin
Insert Into importar_recargas_nucleo(linea, nro_ss ,cod_vendedor
,carga_tarjeta, nro_comision, comision_adl, id_empresa, fecha_importacion)
Values(@linea, @nro_ss, @cod_vendedor, @carga_tarjeta, @nro_comision,
@comision_adl, @id_empresa, @fecha_importacion)
goto Finalizar
end
else
begin
goto ErrorGrave
end


ErrorGrave:
Return 1

Finalizar:
Return 0
GO


El problema que tengo es que simpre me retorna un 0 (cero) por mas que
existan datos en la DB

¿Qué estoy haciendo mal?
Desde ya muchas gracias!
Gustavo



Respuesta Responder a este mensaje
#2 Tio
23/12/2004 - 16:58 | Informe spam
Siempre te da cero porque nada mas meter los "Values" date cuenta que tienes
un goto FINALIZAR que AHÍ retorna 0.


¿tas dao cuent?. Seguro que es eso.

bye!
Respuesta Responder a este mensaje
#3 Gustavo Arriola
23/12/2004 - 17:23 | Informe spam
Gracias a ambos por responder!
MAbanto:
Creo que las variables output no se pueden usar en declare!

-
Entiendo Tio!:

Pero puse un IF para saber si mando un 0 o 1.

Si @estado=0 Entonces que agregue los datos en la tabla
importar_recargas_nucleo y luego que se dirija a finalizar.

Sino que se dirija a ErrorGrave

¿Está mal mi lógica?

Desde ya muchas gracias!
Gustavo
Respuesta Responder a este mensaje
#4 Gustavo Arriola
23/12/2004 - 18:06 | Informe spam
Solucionado!

Cambié la línea

RETURN x

por

SELECT (@estado) AS estado

gracias a todos por su tiempo!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida