La sentencia EGL add coloca un registro en un archivo, una cola de mensajes o una base de datos; o coloca un conjunto de registros en una base de datos.
A continuación se ofrece un ejemplo:
if (userRequest == "A") try add record1; onException myErrorHandler(12); end end
El comportamiento de la sentencia add depende del tipo de registro. Para obtener detalles acerca del proceso SQL, consulte el tema Registro SQL.
Si añade un registro indexado, la clave del registro determina la posición lógica del registro en el archivo. La adición de un registro a una posición de archivo que ya se esté utilizando provoca un error grave de E/S UNIQUE o (si se permiten duplicaciones) el error leve de E/S DUPLICATE.
Al añadir un registro MQ, el registro se coloca al final de la cola. Esta colocación se produce debido a que la sentencia add invoca una o varias llamadas MQSeries:
Si añade un registro relativo, el elemento de clave especifica la posición del registro en el archivo. Sin embargo, la adición de un registro a una posición de archivo que ya se esté utilizando provoca un error grave de E/S UNIQUE.
Al añadir un registro serie, el registro se coloca al final del archivo.
Si el programa generado finaliza un registro serie y luego emite una sentencia get next para el mismo archivo, el programa cierra y vuelve a abrir el archivo antes de ejecutar la sentencia get next. Por tanto, una sentencia get next que sigue a una sentencia add lee el primer registro del archivo. Este comportamiento también se produce cuando las sentencias get next y add se encuentran en programas diferentes, y un programa llama al otro.
Es aconsejable evitar que el mismo archivo esté abierto en más de un programa simultáneamente.
Restricción: En CICS para z/OS, un solo programa no puede incluir una combinación de las sentencias add y get next para el mismo archivo de spool. Esta restricción también se aplica cuando las sentencias add y get next se encuentran en programas diferentes, y un programa llama al otro.
INSERT INTO nombre Tabla (columna01, ... columnaNN) values (:elementoRegistro01, ... :elementoRegistroNN)
try add employees; onException sysLib.rollback(); end
Conceptos relacionados
Referencias a componentes
Tipos de registros y propiedades
Soporte de SQL
Tareas relacionadas
Diagrama de sintaxis