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

Se puede pasar como parámetro la condición completa del WHERE??

Estas en el tema de Se puede pasar como parámetro la condición completa del WHERE?? en el foro de SQL Server en Foros del Web. Buenos días. Estoy intentando algo parecido a esto: Código: CREATE PROCEDURE [dbo].[PA_FAXES_Lista] ( @Condicion nvarchar(255) ) AS BEGIN SELECT Id, NContrato, CodigoOperario FROM Faxes WHERE ...
  #1 (permalink)  
Antiguo 19/06/2007, 08:07
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Se puede pasar como parámetro la condición completa del WHERE??

Buenos días.
Estoy intentando algo parecido a esto:
Código:
CREATE PROCEDURE [dbo].[PA_FAXES_Lista]
(
  @Condicion nvarchar(255)
)
AS
BEGIN
  SELECT
    Id,
    NContrato,
    CodigoOperario
  FROM
    Faxes
  WHERE
    @Condicion
  ORDER BY Id
END
GO
Y así poderle pasar como parámetro toda la condicion o condiciones, en un solo string, pero parece que no es posible...
Como se supone que debería hacer esto?
Gracias!
__________________
..:: moNTeZIon ::..
  #2 (permalink)  
Antiguo 19/06/2007, 08:17
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 5 meses
Puntos: 38
Re: Se puede pasar como parámetro la condición completa del WHERE??

si se puede, utilizando sql dinamico...
pero si vas a hacer eso seria mejor que hicieras un execute desde tu aplicacion con todo el query....

aqui mismo en el foro el mith ha posteado links sobre el uso de sql dinamico...

Código:
    sp_executesql
__________________
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 19/06/2007, 08:34
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Re: Se puede pasar como parámetro la condición completa del WHERE??

Ei gracias Andrés.
Si, de momento lo tengo como me comentas, lanzando la SQL desde la aplicación, concatenándole la condición, a saco.
Pero lo veía un tanto raro, puesto que sería la primera consulta de la aplicación que no se ejecuta a través de STOREDs, y también para tener todo el code de Base de Datos en el mismo sitio, veía mejor solución hacer algo como lo que intentaba.
Mirando un poco esto del SQL dinámico (http://sql.manivesa.com/Tutoriales+S...nados/261.aspx), ya ví que no soluciono nada con tener esto como Procedimiento, puesto que hay que recompilarlo cada vez al cambiar la sentencia..
Thanks man!
__________________
..:: moNTeZIon ::..
  #4 (permalink)  
Antiguo 19/06/2007, 17:17
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 1 mes
Puntos: 47
Re: Se puede pasar como parámetro la condición completa del WHERE??

cuidado con los sql inyection
  #5 (permalink)  
Antiguo 20/06/2007, 01:33
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Re: Se puede pasar como parámetro la condición completa del WHERE??

Gracias Devel9!!! En este caso es para una aplicación interna de una empresa, que utilizarán 5 o 6 personas. En entorno web me preocuparía más, pero para el caso, y no tener que hacer variables para cada posible parámetro, lo dejaré así ...de momento...
Saludos.
__________________
..:: moNTeZIon ::..
  #6 (permalink)  
Antiguo 20/06/2007, 07:49
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 1 mes
Puntos: 47
Re: Se puede pasar como parámetro la condición completa del WHERE??

Cita:
Iniciado por moNTeZIon Ver Mensaje
Gracias Devel9!!! En este caso es para una aplicación interna de una empresa, que utilizarán 5 o 6 personas. En entorno web me preocuparía más, pero para el caso, y no tener que hacer variables para cada posible parámetro, lo dejaré así ...de momento...
Saludos.
Hace tiempo, en una conferencia de microsoft, nos contaron que según estadísticas mas del 70% de los ataques de seguridad informática son hechos por personas de adentro. En cuestiones de seguridad hay que estar atentos siempre y no confiarse
  #7 (permalink)  
Antiguo 20/06/2007, 07:58
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Re: Se puede pasar como parámetro la condición completa del WHERE??

Ups... Cierto! También tiene mucha lógica lo que comentas...
Gracias por la opinión friend
__________________
..:: moNTeZIon ::..
  #8 (permalink)  
Antiguo 27/06/2007, 14:25
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Re: Se puede pasar como parámetro la condición completa del WHERE??

La lectura obligatoria en el SQL dinámico es: http://www.sommarskog.se/dynamic_sql.html

Buen provecho.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
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 21:47.