Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   SQL Server (http://www.forosdelweb.com/f87/)
-   -   Se puede pasar como parámetro la condición completa del WHERE?? (http://www.forosdelweb.com/f87/puede-pasar-como-parametro-condicion-completa-del-where-499016/)

moNTeZIon 19/06/2007 08:07

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!

Andres95 19/06/2007 08:17

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


moNTeZIon 19/06/2007 08:34

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!

Developer9 19/06/2007 17:17

Re: Se puede pasar como parámetro la condición completa del WHERE??
 
cuidado con los sql inyection

moNTeZIon 20/06/2007 01:33

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í :borracho: ...de momento... ;-)
Saludos.

Developer9 20/06/2007 07:49

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

Iniciado por moNTeZIon (Mensaje 2042365)
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í :borracho: ...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 :arriba:

moNTeZIon 20/06/2007 07:58

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 :arriba:

Mithrandir 27/06/2007 14: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.


La zona horaria es GMT -6. Ahora son las 07:02.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.