Las instrucciones OPEN, FETCH y CLOSE CURSOS se utilizan para abrir, iterar y cerrar un cursor de base de datos para las sentencias de lectura. Esta lección trata de enseñarle cómo poner en práctica estas instrucciones.
Antes de seguir con el ejemplo práctico le recomendamos visualice antes la lección ABAP Open SQL – OPEN/CLOSE CURSOR Lección teórica.
- Aplicación práctica
En la lógica del código fuente realizamos lecturas en las tablas de base de datos ZSCARRSA00001 y ZSFLIGHTSA00001 utilizando cursores. Muestramos en la salida en una ventana utilizando la clase estándar CL_DEMO_OUTPUT como sección los códigos de las compañías aéreas (CARRID) de la primera tabla y como texto de la sección todas las compañías aéreas, número de conexión y la fecha del vuelo (CARRID, CONNID, FLDATE) correspondientes a la segunda tabla.
- Implementamos el código fuente.
- Ejecutamos el programa.
- Conclusión
La variable del sistema SY-SUBRC toma el valor cero cada vez que se lee un registro del listado de registros leído por la sentencia SELECT el OPEN CURSOR. En cuanto ya no existen registros el valor de la variable del sistema es distinto de cero. En el bucle de iteración se puede recorrer toda la lista para leer cada registro en una estructura o variable del mismo tipo que las columnas leídas. En cuanto terminamos con la iteración cerramos el cursor en base de datos utilizando la sentencia CLOSE CURSOR.
Si se aplica la instrucción FETCH en un cursor cerrado el sistema devuelve un error de programación DUMP.