ejecutar cursor dentro de un store procedure

19/01/2005 - 16:47 por store procedure y cursores | Informe spam
Hola tengo este cursor pero para tenerlo almacenado y ejecutarlo varias veces
desde asp tengo que ejecutar un store procedure que lo invoque como hago
??



USE BIPE
DECLARE tnames_cursor3 CURSOR

FOR
select COD_NIVEL from FL_Niveles_Generales where papa='123000' order by
cod_nivel

declare @actividad as nvarchar(50)
OPEN tnames_cursor3
FETCH NEXT FROM tnames_cursor3 INTO @actividad
WHILE @@FETCH_STATUS = 0
BEGIN

SELECT A.cod_actividad,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='1'),'')as jan,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='2'),'')as feb,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='3'),'')as mar,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='4'),'')as apr,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='5'),'')as marc,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='6'),'')as may,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='7'),'')as jun,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='8'),'')as jul,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='9'),'')as aug,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='10'),'')as sep,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='11'),'')as oct,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='12'),'')as nov
FROM FL_actividad AS A
WHERE A.cod_general='002_1_001_16082712_001' AND A.cod_actividad=@actividad


FETCH NEXT FROM tnames_cursor3 INTO @actividad
END
CLOSE tnames_cursor3
DEALLOCATE tnames_cursor3
 

Leer las respuestas

#1 Maxi
19/01/2005 - 16:52 | Informe spam
Hola, porque no nos cuentas que quieres hacer y no como lo haces ;), el uso
de cursores es una tecnica muy mala de verdad porque es totalmente
ineficiente. Si nos cuentas un poco mas quizas podamos darte una mano para
eliminar el cursor :-D


Salu2
Maxi


"store procedure y cursores" <store procedure y
escribió en el mensaje
news:
Hola tengo este cursor pero para tenerlo almacenado y ejecutarlo varias
veces
desde asp tengo que ejecutar un store procedure que lo invoque como hago
??



USE BIPE
DECLARE tnames_cursor3 CURSOR

FOR
select COD_NIVEL from FL_Niveles_Generales where papa='123000' order by
cod_nivel

declare @actividad as nvarchar(50)
OPEN tnames_cursor3
FETCH NEXT FROM tnames_cursor3 INTO @actividad
WHILE @@FETCH_STATUS = 0
BEGIN

SELECT A.cod_actividad,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='1'),'')as jan,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='2'),'')as feb,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='3'),'')as mar,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='4'),'')as apr,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='5'),'')as marc,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='6'),'')as may,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='7'),'')as jun,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='8'),'')as jul,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='9'),'')as aug,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='10'),'')as sep,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='11'),'')as oct,
isnull((select b.nombre from FL_actividad as b where a.cod_actividad
=b.cod_actividad and Month (A.fecha)='12'),'')as nov
FROM FL_actividad AS A
WHERE A.cod_general='002_1_001_16082712_001' AND
A.cod_actividad=@actividad


FETCH NEXT FROM tnames_cursor3 INTO @actividad
END
CLOSE tnames_cursor3
DEALLOCATE tnames_cursor3


Preguntas similares