Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Problemas con IF....End en procedimientos almacenados

Estas en el tema de Problemas con IF....End en procedimientos almacenados en el foro de SQL Server en Foros del Web. Hola a todos los amigos del foro... Después de mucho buscar y tratar de resolverlo, no encuentro la solución a mi problema y por eso ...
  #1 (permalink)  
Antiguo 08/05/2012, 11:26
 
Fecha de Ingreso: febrero-2010
Ubicación: Caracas-Venezuela
Mensajes: 4
Antigüedad: 14 años, 9 meses
Puntos: 0
Problemas con IF....End en procedimientos almacenados

Hola a todos los amigos del foro...

Después de mucho buscar y tratar de resolverlo, no encuentro la solución a mi problema y por eso acudo al foro.

Tengo un procedimiento almacenado en SQL Server 2000:

if @prov<>'' and @PVP='n' and @Existencia='s' Begin
Select p.provmodcol,m.titulo,p.modelo,p.ncolor,p.PVP1Prod ,p.CostoBs,Sum(Existprod) as totalpares,Sum(CostoBs*ExistProd) as Valor
from productos p inner join marcas m on m.codigo=p.marca
where p.existprod>0 and p.Codprov=@Prov
group by p.provmodcol,m.titulo,modelo,ncolor,PVP1Prod,Costo Bs
order by p.provmodcol
End

Los parámetros se los mando desde el sistema y funciona siempre y cuando no incluya el procedimiento dentro del IF....END, la única forma de que funcione es sin el condicional y si lo activo no funciona, yo veo que todo está bien, pero no sé si uds. pueden ver una irregularidad en el if...end, porque dentro, todas las instrucciones funcionan bien.

Gracias
  #2 (permalink)  
Antiguo 08/05/2012, 11:41
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Problemas con IF....End en procedimientos almacenados

Ya hiciste esto:

print @prov
print @PVP
print @Existencia

y revisar los valores

Código SQL:
Ver original
  1. IF (@prov<>'' AND @PVP='n' AND @Existencia='s')
  2. BEGIN
  3. SELECT p.provmodcol,m.titulo,p.modelo,p.ncolor,p.PVP1Prod ,p.CostoBs,SUM(Existprod) AS totalpares,SUM(CostoBs*ExistProd) AS Valor
  4. FROM productos p INNER JOIN marcas m ON m.codigo=p.marca
  5. WHERE p.existprod>0 AND p.Codprov=@Prov
  6. GROUP BY p.provmodcol,m.titulo,modelo,ncolor,PVP1Prod,Costo Bs
  7. ORDER BY p.provmodcol
  8. END
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 08/05/2012, 12:14
 
Fecha de Ingreso: febrero-2010
Ubicación: Caracas-Venezuela
Mensajes: 4
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problemas con IF....End en procedimientos almacenados

Hola Libras, gracias por responder

No sé aún como utilizar print para ver el contenido de las variables locales, pero pienso que el problema es con el if...end porque si quito if...end sin que evalúe las condiciones entonces todas las instrucciones funcionan perfectamente y el reporte en mi aplicación se genera sin problemas

Yo trabajo en Delphi 7 y me gustaría saber como ver el valor de las variables del procedimiento almacenado tal vez eso me daría luz para encontrar el problema
  #4 (permalink)  
Antiguo 08/05/2012, 12:33
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Problemas con IF....End en procedimientos almacenados

simplemente pon esto en tu procedimiento:

print @prov
print @PVP
print @Existencia

pero no se como estes agarrando los valores o como esperas que te lleguen los valores en delphi, si te fijas estas usando 3 condiciones and por lo que las 3 se deben de cumplir si una de ellas no se cumple no entraria a la condicion, cuando envias los parametros se mandan las 3 variables con las condiciones necesarias??
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 08/05/2012, 13:23
 
Fecha de Ingreso: febrero-2010
Ubicación: Caracas-Venezuela
Mensajes: 4
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problemas con IF....End en procedimientos almacenados

las 3 variables funcionan perfectamente y lo sé porque si quito el if....end el reporte en delphi me funciona perfectamente, el problema es cuando condiciono las variables y la condición viene dada porque las 3 variables pueden tener 8 combinaciones y cada una tendría que responder a un if...end y el código que escribí corresponde a uno de esos if.
  #6 (permalink)  
Antiguo 08/05/2012, 13:38
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Busqueda Respuesta: Problemas con IF....End en procedimientos almacenados

prueba con algo asi:


IF (@prov<>'' AND @PVP='n' AND @Existencia='s')
begin
print 'entra'

end
else
print 'no entra'

con esto puedes saber si estan relamente entrando en el if.

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: procedimiento, procedimientos, select, server, sql, almacenar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:32.