SELECT y StoreProcedure

23/09/2009 - 16:07 por Jose Gregorio Alvarez | Informe spam
Según se dice por ahí, "Todo lo que se puede hacer con un cursor, se puede
hacer con una consulta".

Pero mi caso es que tengo un StoreProcedure (RecalcularGastos) que realiza
una serie de acciones en varias tablas y como parametro de entrada le paso
el Id de una factura.

Funciona perfectamente, el problema es que ahora quiero ejecutar
condicionalmente el sp RecalcularGastos, solo a las facturas de una
determinada fecha que obtengo mediante un

SELECT ... WHERE Fecha < ######

Como puedo ejecutar el SP RecalcularGastos sin modificar el SP y sin usar un
cursor?

Gracias...
Jose G. Alvarez.
 

Leer las respuestas

#1 Carlos Sacristan
23/09/2009 - 16:43 | Informe spam
Respuesta corta: no puedes.

Respuesta larga: pues aunque hayas oido eso, es falso. No todo se puede
hacer con una query y no con un cursor, y este es un caso claro. Tendrás que
modificar el código del sp para que acepte códigos de facturas a partir de
esa query o, como tú dices, usar un cursor.

Por cierto, no siempre un cursor es negativo en cuanto a rendimiento se
refiere. Lo mejor es hacer pruebas para ver en qué ocasiones nos compensa
usar una solución basada en cursores en vez de una consulta hiper-compleja.


"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático


"Jose Gregorio Alvarez" wrote in message
news:
Según se dice por ahí, "Todo lo que se puede hacer con un cursor, se puede
hacer con una consulta".

Pero mi caso es que tengo un StoreProcedure (RecalcularGastos) que realiza
una serie de acciones en varias tablas y como parametro de entrada le paso
el Id de una factura.

Funciona perfectamente, el problema es que ahora quiero ejecutar
condicionalmente el sp RecalcularGastos, solo a las facturas de una
determinada fecha que obtengo mediante un

SELECT ... WHERE Fecha < ######

Como puedo ejecutar el SP RecalcularGastos sin modificar el SP y sin usar
un cursor?

Gracias...
Jose G. Alvarez.

Preguntas similares