Desarrollando en Cobol y Natural sobre Plataforma Mainframe

miércoles, 27 de noviembre de 2013

Sentencia DELETE para una tabla DB2

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

Related Posts Plugin for WordPress, Blogger...