En aquest tema, aprendrem com interactuar amb bases de dades des de programes COBOL. Ens centrarem en les operacions bàsiques com la inserció, actualització, eliminació i consulta de dades utilitzant SQL incrustat en COBOL.
Continguts
- Introducció a SQL incrustat en COBOL
- Inserció de Dades
- Actualització de Dades
- Eliminació de Dades
- Consulta de Dades
- Exercicis Pràctics
- Introducció a SQL incrustat en COBOL
SQL incrustat permet als programes COBOL executar instruccions SQL directament dins del codi COBOL. Això es fa utilitzant la sentència EXEC SQL per iniciar un bloc SQL i END-EXEC per finalitzar-lo.
Exemple Bàsic
IDENTIFICATION DIVISION.
PROGRAM-ID. ExampleSQL.
DATA DIVISION.
WORKING-STORAGE SECTION.
01  WS-EMP-ID     PIC 9(5).
01  WS-EMP-NAME   PIC X(20).
PROCEDURE DIVISION.
    EXEC SQL
        SELECT EMP_ID, EMP_NAME
        INTO :WS-EMP-ID, :WS-EMP-NAME
        FROM EMPLOYEE
        WHERE EMP_ID = 1001
    END-EXEC.
    DISPLAY 'Employee ID: ' WS-EMP-ID.
    DISPLAY 'Employee Name: ' WS-EMP-NAME.
    STOP RUN.
- Inserció de Dades
Per inserir dades en una taula de la base de dades, utilitzem la instrucció INSERT INTO.
Exemple d'Inserció
IDENTIFICATION DIVISION.
PROGRAM-ID. InsertExample.
DATA DIVISION.
WORKING-STORAGE SECTION.
01  WS-EMP-ID     PIC 9(5) VALUE 1002.
01  WS-EMP-NAME   PIC X(20) VALUE 'John Doe'.
PROCEDURE DIVISION.
    EXEC SQL
        INSERT INTO EMPLOYEE (EMP_ID, EMP_NAME)
        VALUES (:WS-EMP-ID, :WS-EMP-NAME)
    END-EXEC.
    DISPLAY 'Record inserted successfully.'.
    STOP RUN.
- Actualització de Dades
Per actualitzar dades existents en una taula, utilitzem la instrucció UPDATE.
Exemple d'Actualització
IDENTIFICATION DIVISION.
PROGRAM-ID. UpdateExample.
DATA DIVISION.
WORKING-STORAGE SECTION.
01  WS-EMP-ID     PIC 9(5) VALUE 1002.
01  WS-EMP-NAME   PIC X(20) VALUE 'Jane Doe'.
PROCEDURE DIVISION.
    EXEC SQL
        UPDATE EMPLOYEE
        SET EMP_NAME = :WS-EMP-NAME
        WHERE EMP_ID = :WS-EMP-ID
    END-EXEC.
    DISPLAY 'Record updated successfully.'.
    STOP RUN.
- Eliminació de Dades
Per eliminar dades d'una taula, utilitzem la instrucció DELETE.
Exemple d'Eliminació
IDENTIFICATION DIVISION.
PROGRAM-ID. DeleteExample.
DATA DIVISION.
WORKING-STORAGE SECTION.
01  WS-EMP-ID     PIC 9(5) VALUE 1002.
PROCEDURE DIVISION.
    EXEC SQL
        DELETE FROM EMPLOYEE
        WHERE EMP_ID = :WS-EMP-ID
    END-EXEC.
    DISPLAY 'Record deleted successfully.'.
    STOP RUN.
- Consulta de Dades
Per consultar dades d'una taula, utilitzem la instrucció SELECT.
Exemple de Consulta
IDENTIFICATION DIVISION.
PROGRAM-ID. SelectExample.
DATA DIVISION.
WORKING-STORAGE SECTION.
01  WS-EMP-ID     PIC 9(5) VALUE 1001.
01  WS-EMP-NAME   PIC X(20).
PROCEDURE DIVISION.
    EXEC SQL
        SELECT EMP_NAME
        INTO :WS-EMP-NAME
        FROM EMPLOYEE
        WHERE EMP_ID = :WS-EMP-ID
    END-EXEC.
    DISPLAY 'Employee Name: ' WS-EMP-NAME.
    STOP RUN.
- Exercicis Pràctics
Exercici 1: Inserir un Nou Empleat
Escriu un programa COBOL que insereixi un nou registre a la taula EMPLOYEE amb els següents valors:
- EMP_ID: 1003
- EMP_NAME: 'Alice Smith'
Solució
IDENTIFICATION DIVISION.
PROGRAM-ID. InsertExercise.
DATA DIVISION.
WORKING-STORAGE SECTION.
01  WS-EMP-ID     PIC 9(5) VALUE 1003.
01  WS-EMP-NAME   PIC X(20) VALUE 'Alice Smith'.
PROCEDURE DIVISION.
    EXEC SQL
        INSERT INTO EMPLOYEE (EMP_ID, EMP_NAME)
        VALUES (:WS-EMP-ID, :WS-EMP-NAME)
    END-EXEC.
    DISPLAY 'Record inserted successfully.'.
    STOP RUN.Exercici 2: Actualitzar el Nom d'un Empleat
Escriu un programa COBOL que actualitzi el nom de l'empleat amb EMP_ID 1003 a 'Alice Johnson'.
Solució
IDENTIFICATION DIVISION.
PROGRAM-ID. UpdateExercise.
DATA DIVISION.
WORKING-STORAGE SECTION.
01  WS-EMP-ID     PIC 9(5) VALUE 1003.
01  WS-EMP-NAME   PIC X(20) VALUE 'Alice Johnson'.
PROCEDURE DIVISION.
    EXEC SQL
        UPDATE EMPLOYEE
        SET EMP_NAME = :WS-EMP-NAME
        WHERE EMP_ID = :WS-EMP-ID
    END-EXEC.
    DISPLAY 'Record updated successfully.'.
    STOP RUN.Exercici 3: Eliminar un Empleat
Escriu un programa COBOL que elimini el registre de l'empleat amb EMP_ID 1003.
Solució
IDENTIFICATION DIVISION.
PROGRAM-ID. DeleteExercise.
DATA DIVISION.
WORKING-STORAGE SECTION.
01  WS-EMP-ID     PIC 9(5) VALUE 1003.
PROCEDURE DIVISION.
    EXEC SQL
        DELETE FROM EMPLOYEE
        WHERE EMP_ID = :WS-EMP-ID
    END-EXEC.
    DISPLAY 'Record deleted successfully.'.
    STOP RUN.Conclusió
En aquesta secció, hem après com realitzar operacions bàsiques de base de dades en COBOL utilitzant SQL incrustat. Hem cobert la inserció, actualització, eliminació i consulta de dades. Aquests conceptes són fonamentals per a la gestió de dades en aplicacions empresarials. En el proper tema, explorarem la gestió de cursors en COBOL per a un control més detallat sobre les consultes de bases de dades.
Curs de Programació COBOL
Mòdul 1: Introducció al COBOL
- Què és el COBOL?
- Història del COBOL
- Configuració de l'Entorn COBOL
- Estructura Bàsica d'un Programa COBOL
Mòdul 2: Sintaxi Bàsica del COBOL i Tipus de Dades
Mòdul 3: Estructures de Control
Mòdul 4: Treballant amb Dades
- Gestió d'Arxius en COBOL
- Processament d'Arxius Seqüencials
- Processament d'Arxius Indexats
- Processament d'Arxius Relatius
Mòdul 5: Gestió Avançada de Dades
Mòdul 6: Subprogrames i Programació Modular
Mòdul 7: Gestió d'Errors i Depuració
Mòdul 8: COBOL i Bases de Dades
Mòdul 9: Temes Avançats
- COBOL Orientat a Objectes
- COBOL i Serveis Web
- Optimització del Rendiment
- Millors Pràctiques en Programació COBOL
