FALLO CURSOR SqlServer7 a SqlServer2008
Publicado por jose (86 intervenciones) el 09/05/2009 10:13:43
Buenas tengo los siguientes cursores, en SqlServer7 funcionan correctamente pero en Sqlserver2008 NO funciona!!!!, ¿como es posible?
// Este NO recibe ningun parametro de entrada:
DECLARE grupos CURSOR FOR
SELECT grupos_artic.id,grupos_artic.descripcion
FROM grupos_artic (nolock),tipologias (nolock)
where grupos_artic.id_tipologia=tipologias.id
ORDER BY grupos_artic.descripcion;
// Este recibe como entrada una variable del cursor atnerior!!!
DECLARE familias CURSOR FOR
SELECT id, descripcion
FROM familias (nolock)
WHERE familias.grupo=:ll_grupo
ORDER BY descripcion;
// Abro primer cursor
OPEN grupos;
DO WHILE SQLCA.SQLCODE=0
FETCH NEXT grupos INTO :ll_grupo,:ls_nombre;
IF SQLCA.SQLCODE=0 THEN
-------------------------------------------- hasta aqui va todo bien
-------------------------------------------- las variables ll_grupo y ls_nombre son correctas
OPEN familias; ---------------------- aqui me falla!!!!, me dice que el cursor NO
---------------------- esta abierto!!!!!!!!!!!!!!!!!!!!!!!!!
DO WHILE SQLCA.SQLCODE=0
FETCH NEXT familias INTO :ll_familia,:ls_nombre;
IF SQLCA.SQLCODE=0 THEN
END IF
LOOP
CLOSE familias;
END IF
LOOP
CLOSE grupos
Gracias.
// Este NO recibe ningun parametro de entrada:
DECLARE grupos CURSOR FOR
SELECT grupos_artic.id,grupos_artic.descripcion
FROM grupos_artic (nolock),tipologias (nolock)
where grupos_artic.id_tipologia=tipologias.id
ORDER BY grupos_artic.descripcion;
// Este recibe como entrada una variable del cursor atnerior!!!
DECLARE familias CURSOR FOR
SELECT id, descripcion
FROM familias (nolock)
WHERE familias.grupo=:ll_grupo
ORDER BY descripcion;
// Abro primer cursor
OPEN grupos;
DO WHILE SQLCA.SQLCODE=0
FETCH NEXT grupos INTO :ll_grupo,:ls_nombre;
IF SQLCA.SQLCODE=0 THEN
-------------------------------------------- hasta aqui va todo bien
-------------------------------------------- las variables ll_grupo y ls_nombre son correctas
OPEN familias; ---------------------- aqui me falla!!!!, me dice que el cursor NO
---------------------- esta abierto!!!!!!!!!!!!!!!!!!!!!!!!!
DO WHILE SQLCA.SQLCODE=0
FETCH NEXT familias INTO :ll_familia,:ls_nombre;
IF SQLCA.SQLCODE=0 THEN
END IF
LOOP
CLOSE familias;
END IF
LOOP
CLOSE grupos
Gracias.
Valora esta pregunta


0