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

Siempre me entra en un if...

Estas en el tema de Siempre me entra en un if... en el foro de SQL Server en Foros del Web. Hola a todos, tengo el siguiente codigo, que deberia teoricamente, entrar en un if cuando @pCod_uno ='- TODOS LOS CODIGOS' , pero cuando le envio ...
  #1 (permalink)  
Antiguo 01/06/2007, 08:43
 
Fecha de Ingreso: junio-2005
Mensajes: 337
Antigüedad: 18 años, 11 meses
Puntos: 1
Siempre me entra en un if...

Hola a todos, tengo el siguiente codigo, que deberia teoricamente, entrar en un if cuando @pCod_uno ='- TODOS LOS CODIGOS' , pero cuando le envio otra cosa por ejempo @pCod_uno = 000503 entra igual como si el parametro estuviera trayendo '- TODOS LOS CODIGOS' , hago el print y esta trayendo bien por ejemplo 000503, que estoy haciendo mal para que entre siempre en este if??Graciassssssss, estoy por aca! Besos, Lau!

if @pCod_uno ='- TODOS LOS CODIGOS' set @pCod_uno= '-1'
PRINT @pCod_uno
begin
set @pCod_conciliacion = null
set @pCod_todos=1
print 'estoy_cargando_todos_los_codigos'
insert into #codigos
(cod_conciliacion)
select cod_conciliacion from cf_mis_ps_conciliacion_codigo (nolock)
end
  #2 (permalink)  
Antiguo 01/06/2007, 09:08
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 5 meses
Puntos: 38
Re: Siempre me entra en un if...

Es solo que no tienes bien tabulado tu codigo y no puedes ver el flujo real.
Que tal asi?, mas sencillo no?
Código:
if @pCod_uno ='- TODOS LOS CODIGOS' 
    set @pCod_uno= '-1'   

PRINT @pCod_uno

begin 
   set @pCod_conciliacion = null 
   set @pCod_todos=1 
   print 'estoy_cargando_todos_los_codigos'
   insert into #codigos 
   (cod_conciliacion) 
   select cod_conciliacion from cf_mis_ps_conciliacion_codigo (nolock) 
end
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 01/06/2007, 09:13
 
Fecha de Ingreso: junio-2005
Mensajes: 337
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Siempre me entra en un if...

Es verdad Andres, estaab revisando y el tema no es que entra siempre, sino que me realiza las demas cosas...

yo quiero que al entrar al ciclo me realize todo y sino no...y lo unico que hace cuando @pCod_uno es distinto de '- TODOS LOS CODIGOS' es setear el @pCod_uno pero si me realiza el resto, como hago para que si @pCod_uno es por ejemplo 000503 NO ME haga el resto de las cosas, es decir el print y todo lo que esta dentro del begin??

Gracias, sigo por aca.Besos, Laurys.

if @pCod_uno ='- TODOS LOS CODIGOS'
set @pCod_uno= '-1'

PRINT @pCod_uno

begin
set @pCod_conciliacion = null
set @pCod_todos=1
print 'estoy_cargando_todos_los_codigos'
insert into #codigos
(cod_conciliacion)
select cod_conciliacion from cf_mis_ps_conciliacion_codigo (nolock)
end
  #4 (permalink)  
Antiguo 01/06/2007, 09:13
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 6 meses
Puntos: 8
Re: Siempre me entra en un if...

Hola Lau.

De acuerdo a lo que nos pones en tu código, si la siguiente condición se cumple:
Código:
if @pCod_uno ='- TODOS LOS CODIGOS' 
Sólo se ejecuta una línea, que es esta:
Código:
set @pCod_uno= '-1'
Posteriormente se ejecuta el resto del código ( independientemente del valor de @pCod_uno ) .

Si quieres que se ejecute todo el bloque del código de acuerdo a al condición, entonces debes de ponerlo así:

Código:
if @pCod_uno ='- TODOS LOS CODIGOS' 
begin 
  set @pCod_uno= '-1' 
  PRINT @pCod_uno
  set @pCod_conciliacion = null 
  set @pCod_todos=1 
  print 'estoy_cargando_todos_los_codigos'
  insert into #codigos 
  (cod_conciliacion) 
  select cod_conciliacion from cf_mis_ps_conciliacion_codigo (nolock) 
end 
Ahora bien, sólo como recomendación, no uses cadenas tan largas para comparación, por ejemplo para tu caso la cadena "- TODOS LOS CODIGOS", supongo que viene de un combo box, asignale un el value la cadena "-1" o cadena vacía "". Esto para evitarnos algunos dolores de cabeza, porque nos sobra un espacio, nos comomos alguna letra o cosas por el estilo

Saludos!
  #5 (permalink)  
Antiguo 01/06/2007, 09:20
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 5 meses
Puntos: 38
Re: Siempre me entra en un if...

Cita:
Iniciado por laulaurys Ver Mensaje
como hago para que si @pCod_uno es por ejemplo 000503 NO ME haga el resto de las cosas, es decir el print y todo lo que esta dentro del begin??

Gracias, sigo por aca.Besos, Laurys.

if @pCod_uno ='- TODOS LOS CODIGOS'
set @pCod_uno= '-1'

PRINT @pCod_uno

begin
set @pCod_conciliacion = null
set @pCod_todos=1
print 'estoy_cargando_todos_los_codigos'
insert into #codigos
(cod_conciliacion)
select cod_conciliacion from cf_mis_ps_conciliacion_codigo (nolock)
end
De la forma que indica Daniel....

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #6 (permalink)  
Antiguo 01/06/2007, 09:23
 
Fecha de Ingreso: junio-2005
Mensajes: 337
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Siempre me entra en un if...

Siiiiiiiiii, que bobaaaaaaa no lo puedo creer lo tenia delante de mis ojos y no me daba cuenta!!

diganme que son cosas que les pasa a todos....asi me consuelo jajajja

GRACIAS GRACIAS GRACIAS!!

Besos y que tengan un hermoso y linda dia!!
Laurys.
  #7 (permalink)  
Antiguo 01/06/2007, 09:33
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 5 meses
Puntos: 38
Re: Siempre me entra en un if...

Pasa muy seguido, sobre todo cuando la jornadas de trabajo son extensas o cuando estamos bajo presion para armar un entregable..

Lo bueno que ya es viernes...

Saludos...
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
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 23:11.