¿Por qué siempre devuelve 0?

15/10/2006 - 00:31 por dgironal | Informe spam
Microsoft SQL Server 2000
Visual Basic .NET

Creo el comando, inicializo parámetros y cuando

cmd.ExecuteNonQuery()
flag = DirectCast(cmd.Parameters("@ok").Value, Boolean)

¿Por qué SIEMPRE ME DEVUELVE CERO (0), falso?
Cuando existen valores que debería devolver 1 (true)

El select count(*) LO CALCULA BIEN (comprobado), no entiendo !!!!

CREATE PROCEDURE PlazasOcupadas
(
@tipo int,
@dia smalldatetime,
@temporada as int,

@disponibles as int,
@solicitadas as int,

@ok bit OUTPUT
)

AS

DECLARE @ocupadas INT

SELECT @ocupadas (
SELECT COUNT(*) AS plazasOcupadas
FROM reservadias INNER JOIN Reserva ON (reservadias.rReserva=Reserva.id)
WHERE
(Reserva.status=0)
AND ((reserva.Localizador IS NULL) OR (reserva.Localizador LIKE 'AR%'))
AND reservadias.rSubtipoAlojamiento=@tipo
AND reservadias.dia=@dia
AND reservadias.rTemporada=@temporada
)


if (@ocupadas + @solicitadas > @disponibles) set @ok = 0
else set @ok = 1

return (0)
GO
 

Leer las respuestas

#1 Angel Hernández
15/10/2006 - 03:55 | Informe spam
Siempre devuelves 0 (return (0)). Cómo tienes la implementación en VB?

Saludos,


Angel J. Hernández M.
MCP,MCAD,MCSD,MCDBA,MCT
Microsoft MVP ASP/ASP.NET
http://msmvps.com/blogs/angelhernandez
http://groups.msn.com/desarrolladoresmiranda



"dgironal" wrote in message
news:OYTZAC%
Microsoft SQL Server 2000
Visual Basic .NET

Creo el comando, inicializo parámetros y cuando

cmd.ExecuteNonQuery()
flag = DirectCast(cmd.Parameters("@ok").Value, Boolean)

¿Por qué SIEMPRE ME DEVUELVE CERO (0), falso?
Cuando existen valores que debería devolver 1 (true)

El select count(*) LO CALCULA BIEN (comprobado), no entiendo !!!!

CREATE PROCEDURE PlazasOcupadas
(
@tipo int,
@dia smalldatetime,
@temporada as int,

@disponibles as int,
@solicitadas as int,

@ok bit OUTPUT
)

AS

DECLARE @ocupadas INT

SELECT @ocupadas > (
SELECT COUNT(*) AS plazasOcupadas
FROM reservadias INNER JOIN Reserva ON (reservadias.rReserva=Reserva.id)
WHERE
(Reserva.status=0)
AND ((reserva.Localizador IS NULL) OR (reserva.Localizador LIKE 'AR%'))
AND reservadias.rSubtipoAlojamiento=@tipo
AND reservadias.dia=@dia
AND reservadias.rTemporada=@temporada
)


if (@ocupadas + @solicitadas > @disponibles) set @ok = 0
else set @ok = 1

return (0)
GO



Preguntas similares