En aquest tema, explorarem la integració del llenguatge COBOL amb el sistema de gestió de bases de dades DB2 d'IBM. Aquesta combinació és molt utilitzada en entorns empresarials per gestionar grans volums de dades de manera eficient. Aprendrem com utilitzar SQL incrustat en programes COBOL per interactuar amb bases de dades DB2.

Objectius del Tema

  • Comprendre la relació entre COBOL i DB2.
  • Aprendre a incrustar sentències SQL en programes COBOL.
  • Conèixer les estructures bàsiques per a la integració de COBOL amb DB2.

  1. Què és DB2?

DB2 és un sistema de gestió de bases de dades relacional (RDBMS) desenvolupat per IBM. És conegut per la seva robustesa, escalabilitat i capacitat per gestionar grans volums de dades. DB2 és àmpliament utilitzat en entorns empresarials, especialment en sistemes mainframe.

  1. Integració de COBOL amb DB2

La integració de COBOL amb DB2 es realitza mitjançant l'ús de SQL incrustat. Això permet als programes COBOL executar sentències SQL per interactuar amb la base de dades DB2. Aquesta combinació és molt potent, ja que permet aprofitar la capacitat de processament de COBOL juntament amb la gestió de dades de DB2.

  1. Estructura Bàsica d'un Programa COBOL-DB2

Un programa COBOL que interactua amb DB2 segueix una estructura específica. A continuació, es mostra un exemple bàsic:

IDENTIFICATION DIVISION.
PROGRAM-ID. EXEMPLE-COBOL-DB2.

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-370.
OBJECT-COMPUTER. IBM-370.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 SQLCODE PIC S9(9) COMP.
01 SQLERRM PIC X(70).

PROCEDURE DIVISION.
BEGIN.
    EXEC SQL
        CONNECT TO 'NOM_DE_LA_BASE_DE_DADES'
    END-EXEC.

    IF SQLCODE NOT = 0
        DISPLAY 'Error en la connexió: ' SQLCODE
        STOP RUN
    END-IF.

    EXEC SQL
        SELECT NOM, EDAT
        INTO :NOM, :EDAT
        FROM EMPLEATS
        WHERE EMPLEAT_ID = 12345
    END-EXEC.

    IF SQLCODE = 0
        DISPLAY 'Nom: ' NOM
        DISPLAY 'Edat: ' EDAT
    ELSE
        DISPLAY 'Error en la consulta: ' SQLCODE
    END-IF.

    EXEC SQL
        COMMIT
    END-EXEC.

    EXEC SQL
        DISCONNECT
    END-EXEC.

    STOP RUN.

Explicació del Codi

  1. IDENTIFICATION DIVISION: Defineix el nom del programa.
  2. ENVIRONMENT DIVISION: Especifica la configuració del sistema.
  3. DATA DIVISION: Defineix les variables necessàries per a la interacció amb DB2, com SQLCODE i SQLERRM.
  4. PROCEDURE DIVISION: Conté la lògica del programa, incloent les sentències SQL incrustades.

Sentències SQL Incrustades

  • CONNECT: Estableix una connexió amb la base de dades.
  • SELECT: Recupera dades de la base de dades.
  • COMMIT: Confirma les transaccions.
  • DISCONNECT: Tanca la connexió amb la base de dades.

  1. Exercici Pràctic

Exercici

Escriu un programa COBOL que es connecti a una base de dades DB2, recuperi el nom i el salari d'un empleat amb un ID específic, i mostri aquesta informació per pantalla.

Solució

IDENTIFICATION DIVISION.
PROGRAM-ID. EXERCICI-COBOL-DB2.

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-370.
OBJECT-COMPUTER. IBM-370.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 SQLCODE PIC S9(9) COMP.
01 SQLERRM PIC X(70).
01 EMPLEAT-NOM PIC X(50).
01 EMPLEAT-SALARI PIC 9(7)V99.

PROCEDURE DIVISION.
BEGIN.
    EXEC SQL
        CONNECT TO 'NOM_DE_LA_BASE_DE_DADES'
    END-EXEC.

    IF SQLCODE NOT = 0
        DISPLAY 'Error en la connexió: ' SQLCODE
        STOP RUN
    END-IF.

    EXEC SQL
        SELECT NOM, SALARI
        INTO :EMPLEAT-NOM, :EMPLEAT-SALARI
        FROM EMPLEATS
        WHERE EMPLEAT_ID = 12345
    END-EXEC.

    IF SQLCODE = 0
        DISPLAY 'Nom: ' EMPLEAT-NOM
        DISPLAY 'Salari: ' EMPLEAT-SALARI
    ELSE
        DISPLAY 'Error en la consulta: ' SQLCODE
    END-IF.

    EXEC SQL
        COMMIT
    END-EXEC.

    EXEC SQL
        DISCONNECT
    END-EXEC.

    STOP RUN.

  1. Errors Comuns i Solucions

  • Error de Connexió (SQLCODE ≠ 0): Assegura't que el nom de la base de dades i les credencials de connexió són correctes.
  • Error en la Consulta (SQLCODE ≠ 0): Verifica que la taula i les columnes existeixen i que l'ID de l'empleat és vàlid.

Conclusió

En aquest tema, hem après com integrar COBOL amb DB2 utilitzant SQL incrustat. Hem vist l'estructura bàsica d'un programa COBOL-DB2 i hem practicat amb un exercici pràctic. Aquesta combinació és molt potent per gestionar grans volums de dades en entorns empresarials. En el proper tema, explorarem com utilitzar SQL incrustat en COBOL amb més detall.

© Copyright 2024. Tots els drets reservats