A continuación se ofrece un ejemplo de acceso a archivo:
try open record1 forUpdate; onException myErrorHandler(8); return; end try get next record1; onException myErrorHandler(12); return; end while (record1 not endOfFile) makeChanges(record1); // procesar el registro try replace record1; onException myErrorHandler(16); return; end try get next record1; onException myErrorHandler(12); return; end end // fin de while sysLib.commit();
Los detalles de la sentencia get next dependen del tipo de registro. Para obtener detalles sobre el proceso SQL, consulte la sección Proceso SQL.
1, 2, 2, 2, 3, 4
Cada una de las tablas siguientes ilustra el resultado de la ejecución de una secuencia de sentencias EGL en el mismo registro indexado.
Sentencia EGL (por orden) | Clave del registro indexado | Clave del registro de archivo recuperada por la sentencia | Valor de error EGL |
---|---|---|---|
get | 2 | 2 (la primera de tres) | duplicate |
get next | cualquiera | 2 (la segunda) | duplicate |
get next | cualquiera | 2 (la tercera) | — |
get next | cualquiera | 3 | — |
Sentencia EGL (por orden) | Clave del registro indexado | Clave del registro de archivo recuperada por la sentencia | Valor de error EGL |
---|---|---|---|
set (en el formato set record position) | 2 | sin recuperación | duplicate |
get next | cualquiera | 2 (la primera de tres) | — |
get next | cualquiera | 2 (la segunda) | duplicate |
get next | cualquiera | 2 (la tercera) | — |
get next | cualquiera | 3 | — |
Cuando una sentencia get next opera en un registro MQ, el primer registro de la cola se lee en el registro MQ. Esta colocación se produce debido a que la sentencia get next invoca una o varias llamadas MQSeries:
Es aconsejable evitar que el mismo archivo esté abierto en más de un programa simultáneamente.
Una sentencia SQL FETCH representa la sentencia EGL get next en el código generado. El formato de la sentencia SQL generada no puede cambiarse, excepto para establecer la cláusula INTO.
Finalmente, al especificar SQL COMMIT o sysLib.commit, el código conserva la posición en el cursor declarado en la sentencia open, pero sólo en caso de que utilice la opción hold en la sentencia open.
Conceptos relacionados
Tipos de registros y propiedades
resultSetID
Soporte de SQL
Tareas relacionadas
Diagrama de sintaxis para sentencias y mandatos EGL
Consulta relacionada
add
close
delete
Manejo de excepciones
execute
get
get previous
Valores de error de E/S
Sentencias EGL
open
prepare
replace
set