Una especificación de una cláusula INTO en este contexto altera temporalmente cualquier cláusula INTO identificada en la sentencia open relacionada.
En la mayoría de los casos, el tiempo de ejecución de EGL emite una sentencia close implícita después de la última iteración de la sentencia forEach. Esa sentencia implícita modifica las variables del sistema SQL, razón por la que deberá guardar los valores de las variables del sistema relacionadas con SQL en el cuerpo de la sentencia forEach.
El tiempo de ejecución de EGL no emite una sentencia close implícita si la sentencia forEach finaliza debido a un error que no sea noRecordFound.
VGVar.handleHardIOErrors = 1; try open selectEmp with #sql{ select empnum, empname from employee where empnum >= :empnum for update of empname } into empnum, empname; onException myErrorHandler(6); // salir del programa end try forEach (from selectEmp) empname = empname + " " + "III"; try execute #sql{ update employee set empname = :empname where current of selectEmp }; onException myErrorHandler(10); // salir del programa end end // fin de forEach; el cursor se cierra automáticamente // cuando se lee la última fila del conjunto de resultados onException // el bloque de excepción relacionado con forEach no se ejecuta si la condición // es "sqlcode = 100", así que evite la prueba "if (sqlcode != 100)" myErrorHandler(8); // salir del programa end sysLib.commit();
Conceptos relacionados
resultSetID
Soporte de SQL
Tareas relacionadas
Diagrama de sintaxis para sentencias y mandatos EGL
Consulta relacionada
Sentencias EGL
exit
open
Ejemplos de SQL