Foro de Cobol
Registrate en el Foro de Cobol y Aporta tus experiencias y conocimientos sobre este lenguaje de programacion, con tu ayuda el foro crecera y todos nos podremos beneficiar de los conocimientos de los demas.

Gracias por entrar a COBOLEROS.ES
Síguenos en Twitter

5.15 Close

Ver el tema anterior Ver el tema siguiente Ir abajo

5.15 Close

Mensaje por Coboler@ el Miér Mar 07, 2012 12:24 am

Su funcion es cerrar el cursor una vez que se ha terminado de procesar las filas de la tabla de resultados si se quiere volver a utilizarlo. El DB2 cierra el cursor automaticamente cuando termina el programa.


Formato
_______

EXEC SQL
CLOSE nombre_del_cursor
END-EXEC

Si el programa completa una unidad de recuperacion todos los cursores abiertos son cerrados automaticamente por el DB2. Si el cursor se vuelve a abrir, el proceso comenzara al principio de la tabla de resultados y se tendra que restablecer la posicion del cursor.

Ejemplo:


Supongamos que se quieren actualizar los datos de los empleados de la tabla DSN.EMPL dando un SYNCPOINT cada 100 filas.

1. Declarar el cursor como conjunto de filas de EMPNO > UPD-EMP

EXEC SQL
DECLARE EMPLEADO CURSOR FOR
SELECT EMPNO, SALARY
FROM DSN.EMPL
WHERE EMPNO > :UPD-EMP
ORDER BY EMPNO
END-EXEC


2. Abrir el cursor y mover los datos de la tabla de resultados una fila cada vez, de forma que el limite mas bajo de la tabla se actualiza en UPD-EMP.

EXEC SQL

OPEN EMPLEADO

END-EXEC



EXEC SQL

FETCH EMPLEADO

INTO :UPD-EMP, :UPD-SAL

END-EXEC

3. Borrar una fila

EXEC SQL
DELETE FROM DSN.EMPL
WHERE EMNO = :UPD-EMP
END-EXEC


4. Al abrir el cursor de nuevo, la condicion de busqueda de la tabla procesara la DSN.EMPL basandose en el valor actual de UPD-EM
avatar
Coboler@
Admin

Mensajes : 215
Reputación : 19
Fecha de inscripción : 02/02/2011
Edad : 37
Localización : Madrid

Ver perfil de usuario http://www.coboleros.es

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.