Novato con Procedimientos Almacenados

20/10/2003 - 14:33 por Daniel Álvarez | Informe spam
Hola

Estoy bastante flojo en el tema de los procedimientos almacenados, estoy
creando una bastante simple y no se por que no me funciona. El caso es que
depende de si un valor que le pido tiene un dato mayor a 0 yo añado una
clausula a la consulta pero no me tira, o se pasa por el forro que tiene un
valor mayor que 0 o no añade la clausula no se que pasa. Yo no se si es que
igual es que no es asi como se programan procedimiento almacenados, igual es
que estoy con la ide equivocada, no se, como he dicho yo en procedimientos
toy muy flojo:

CREATE PROCEDURE cuadro
@licencia int,
@casa int
AS
declare @cadena char(300)
set @cadena = 'select a.id,a.nombre,b.numhabitacion from cabañas as a inner
join habitaciones as b on (a.id=b.cabaña and a.licencia=b.licencia) where
a.licencia=' + cast(@licencia as varchar)
if (@casa>0)
begin
set @cadena = @cadena + 'and a.cabaña=1'
end
EXEC (@cadena)
GO

Gracias.


Daniel Álvarez
 

Leer las respuestas

#1 José Raúl Fenollar Martínez
20/10/2003 - 15:43 | Informe spam
prueba cambiando el cast(@licencia as varchar) a cast(@licencia as
varchar(10)) por ejemplo y dinos.



CREATE PROCEDURE cuadro
@licencia int,
@casa int
AS
declare @cadena char(300)
set @cadena = 'select a.id,a.nombre,b.numhabitacion from cabañas as a inner
join habitaciones as b on (a.id=b.cabaña and a.licencia=b.licencia) where
a.licencia=' + cast(@licencia as varchar(10))
if (@casa>0)
begin
set @cadena = @cadena + 'and a.cabaña=1'
end
EXEC (@cadena)
GO


"Daniel Álvarez" wrote in message
news:
Hola

Estoy bastante flojo en el tema de los procedimientos almacenados,


estoy
creando una bastante simple y no se por que no me funciona. El caso es que
depende de si un valor que le pido tiene un dato mayor a 0 yo añado una
clausula a la consulta pero no me tira, o se pasa por el forro que tiene


un
valor mayor que 0 o no añade la clausula no se que pasa. Yo no se si es


que
igual es que no es asi como se programan procedimiento almacenados, igual


es
que estoy con la ide equivocada, no se, como he dicho yo en procedimientos
toy muy flojo:

CREATE PROCEDURE cuadro
@licencia int,
@casa int
AS
declare @cadena char(300)
set @cadena = 'select a.id,a.nombre,b.numhabitacion from cabañas as a


inner
join habitaciones as b on (a.id=b.cabaña and a.licencia=b.licencia) where
a.licencia=' + cast(@licencia as varchar)
if (@casa>0)
begin
set @cadena = @cadena + 'and a.cabaña=1'
end
EXEC (@cadena)
GO

Gracias.


Daniel Álvarez





Preguntas similares