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

  1. Introducció a SQL incrustat en COBOL
  2. Inserció de Dades
  3. Actualització de Dades
  4. Eliminació de Dades
  5. Consulta de Dades
  6. Exercicis Pràctics

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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.

© Copyright 2024. Tots els drets reservats