Cuando queramos borrar un registro de un fichero DB2 tendremos que recurrir a la sentencia DELETE. Con ella se conseguirá eliminar el registro completo (si lo que queremos es borrar únicamente algunos de sus campos, entonces esta no es la sentencia que buscamos).
Para la implementación de la sentencia DELETE de una tabla DB2 no tenemos que especificar demasiada información. Bastará con indicar el nombre del dichero DB2 y el nombre del campo clave por el que se debe buscar el registro que queremos eliminar.
El código quedaría del siguiente modo.
*
* BORRAMOS REGISTRO EN DB2 JJCLIEM0
* ---------------------------------
EXEC SQL
DELETE FROM JJCLIEM0
WHERE CLIENTE = :CLAVE-CLIENTE
END-EXEC
La sentencia DELETE se compone de dos partes:
1º) DELETE FROM: en esta cláusula únicamente tendremos que indicar el nombre del fichero DB2 a cuya información queremos acceder.
2º) WHERE: en esta cláusula habrá que incluir un campo clave de la tabla DB2. Esta clave nos servirá para buscar e identificar el registro que debe ser borrado.
A continuación, procederemos a validar el resultado de la variable SQLCODE, para comprobar si la ejecución ha sido correcta o no.
*
* GESTION DEL SQLCODE
* -------------------
EVALUATE TRUE
WHEN SQLCODE = ZEROES
ADD 1 TO CO-LEIDOS-ENTRADA1
DISPLAY 'ACCESO DB2 OK'
WHEN SQLCODE = +100
SET FIN-ENTRADA1 TO TRUE DISPLAY '---> NO EXISTE REGISTRO'
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
La validación del SQLCODE nos deberá decir si todo ha ido correcto, si no existe el registro que se quiere eliminar o si se ha producido algún otro error. Obviamente, si la clave buscada no existe en el DB2, entonces la sentencia no puede eliminar ningún registro de la tabla.
Eso es todo. Tras especificar la información indicada en el post, ya no deberíamos tener ningún problema con la ejecución de la sentencia DELETE en nuestro programa Cobol.
Saludos.
No hay comentarios:
Publicar un comentario