tengo un problema que aun no entiendo el porque, uso el componente TStoreProc, para ejecutar un procedimiento almacenado que en la BD me funciona perfectamente. no me da errores peor no me retorna el valor esperado, siempre me retorna 0. bueno he probado dos en realidad.
Ej1:
CREATE PROCEDURE dbo.SYS_GEN_ID (
@IdContador TITULOS_40,
@Incremento CONTADORES=1,
@Valor CONTADORES OUTPUT )
AS
declare @CantRegs int
BEGIN
set @CantRegs = (SELECT COUNT(*) FROM SYS_CONTADORES
WHERE IDCONTADOR = @IDCONTADOR)
IF @CantRegs > 0 BEGIN /* si existe el IDCONTADOR */
SELECT @Valor = VALOR FROM SYS_CONTADORES
WHERE IDCONTADOR = @IDCONTADOR
SET @Valor = @Valor + @Incremento
UPDATE SYS_CONTADORES
SET VALOR = @Valor
WHERE IDCONTADOR = @IDCONTADOR
END
ELSE SET @Valor = 0
END
Ej2:
CREATE PROCEDURE dbo.SYS_VALIDA_PSW(
@pLog LOGIN,
@pPsw PASSWORD,
@pEntrar LOGICO OUTPUT )
AS
BEGIN
/* Procedimiento para validar la entrada al sistema */
IF NOT EXISTS (SELECT * FROM SYS_USUARIOS WHERE CLAVE = @pPsw AND LOGIN = @pLog )
BEGIN
SET @pEntrar = 0
END
ELSE
BEGIN
SET @pEntrar = 1
END
END
En el caso del primero debe ir dando un consecutivo, actualmente debe retornar 2, y me retorna 0. El segundo nunca me da 1.
alguien ha pasado por esto por favor?
gracias