Cuando queramos almacenar un nuevo registro en un fichero DB2 tendremos que recurrir a la sentencia INSERT. Se trata de un comando SQL que puede ser usado en los programas Cobol como código embebido con las cláusulas EXEC SQL y END-EXEC.
La sentencia INSERT nos permitirá incorporar un nuevo registro en nuestra tabla DB2 mediante la indicación de los campos que queremos que tengan algún contenido. También tendremos que indicar los valores que deberán tener dichos campos.
Un ejemplo de INSERT sería el siguiente.
*
* INSERTAMOS NUEVO REGISTRO EN DB2 JJCLIEM0
* -----------------------------------------
EXEC SQL
INSERT INTO JJCLIEM0
(CLIENTE,
NOMBRE,
APELLIDO1,
APELLIDO2,
ALTURA,
PESO,
IMC,
OBSERVACIONES,
FECHA)
VALUES
(:S-CLIENTE,
:S-NOMBRE,
:S-APELLIDO1,
:S-APELLIDO2,
:S-ALTURA,
:S-PESO,
:S-IMC,
:S-OBSERVACIONES,
CURRENT_TIMESTAMP)
END-EXEC
Como vemos, la sentencia se compone de 2 cláusulas:
1º) Cláusula INSERT INTO: donde tendremos que indicar el nombre del fichero DB2 y la denominación de todos los campos en los que queremos almacenar información para el nuevo registro.
2º) Cláusula VALUES: donde tendremos que especificar los valores que quedarán contenidos en cada uno de los campos especificados anteriormente. Dichos valores podrán proceder de constantes o de variables.
Tras la ejecución de la sentencia INSERT tendremos que establecer, como siempre, un control de la variable SQLCODE. De este modo verificaremos si la inserción se ha realizado correctamente o si, por contra, se ha detectado algún error.
*
* GESTION DEL SQLCODE
* -------------------
EVALUATE TRUE
WHEN SQLCODE = ZEROES
ADD 1 TO CO-LEIDOS-ENTRADA1
DISPLAY 'ACCESO DB2 OK'
WHEN SQLCODE = -803
SET NO-FIN-ENTRADA1 TO TRUE
DISPLAY 'EL REGISTRO YA EXISTE EN LA TABLA'
WHEN OTHER
MOVE SQLCODE TO SQLCODE-DIS
DISPLAY 'ERROR ACCESO DB2. SQLCODE: ' SQLCODE-DIS
MOVE SQLCODE-DIS TO WS-FILE-ERROR
MOVE 'ERROR ACCESO DB2' TO WS-DESCRIPCION
PERFORM 9980-GENERAR-ERROR
THRU 9980-GENERAR-ERROR-EXIT
END-EVALUATE
Una vez controlado el SQLCODE, pasaremos a indicar si la ejecución ha sido correcta, si el registro ya existía en el fichero DB2 o si se ha producido algún otro tipo de error. No debemos olvidar establecer este tipo de controles, ya que es muy frecuente que se obtenga el retorno 803 al intentar dar de alta un registro que ya existe en la tabla.
Y eso es todo. Con estas sencillas indicaciones ya no deberíamos tener problemas a la hora de implementar un INSERT en nuestros programas Cobol.
Saludos.
No hay comentarios:
Publicar un comentario