Pasar parámetros a un SP

10/05/2006 - 13:04 por RafaPiula | Informe spam
Hola a todos, tengo un SP para hacer una consulta y me interesa pasarle
una serie de parámetros al mismo campo. Estos parámetros, puede que
no sean los mismos para cada consulta, es decir, son del tipo
ClaveValor = 5 Or ClaveValor = 6 Or ClaveValor = 7 y en otra consulta,
un único parámetro, o ninguno, o más. Es decir, de antemano, no sé
los parámetros que le voy a enviar.
Cómo se los puedo pasar?
Gracias de antemano

Rafa Piula
 

Leer las respuestas

#1 Alberto Poblacion
10/05/2006 - 15:51 | Informe spam
"RafaPiula" wrote in message
news:
Hola a todos, tengo un SP para hacer una consulta y me interesa pasarle
una serie de parámetros al mismo campo. Estos parámetros, puede que
no sean los mismos para cada consulta, es decir, son del tipo
ClaveValor = 5 Or ClaveValor = 6 Or ClaveValor = 7 y en otra consulta,
un único parámetro, o ninguno, o más. Es decir, de antemano, no sé
los parámetros que le voy a enviar.
Cómo se los puedo pasar?



Bueno, el "ClaveValor = 5 Or ClaveValor = 6 Or ClaveValor = 7" lo puedes
convertir en "where ClaveValor in (5,6,7)", que te quedará más limpio. Por
desgracia, eso no resuelve el problema de pasarlo como parámetro al
procedimiento, porque no acepta que un parámetro sea una lista de valores
para el "IN".

La forma de resolverlo sería usar sql dinámico (que en sql server se consige
con una llamada a sp_executesql). El sp_executesql recibe como argumento un
string, y ese string se podría concatenar con la lista "5,6,7" mencionada
más arriba.

Por desgracia, el uso de sql dinámico anula muchas de las ventajas de usar
procedimientos almacenados, ya que ni ahorra el análisis de las sentencias,
ni las deja preoptimizadas, ni evita los ataques de inyección de sql.

Preguntas similares