Corso di programmazione COBOL (livello base)

[Lezione 7] - Accesso ai database

14/02/2024


In questa lezione affronteremo i seguenti argomenti:

• Comprendere l'accesso ai database relazionali in COBOL.
• Imparare a connettersi e interrogare un database in COBOL.
• Praticare l'utilizzo di transazioni e commit.



Introduzione ai database relazionali:
- I database relazionali organizzano i dati in tabelle relazionate tra loro.
- COBOL può interagire con i database attraverso standard come SQL.

Connessione al database:
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
EXEC SQL
    INCLUDE SQLCA
END-EXEC.
EXEC SQL
    BEGIN DECLARE SECTION
END-EXEC.

PROCEDURE DIVISION.
    EXEC SQL
        CONNECT TO my_database
    END-EXEC.
    IF SQLCODE = 0 THEN
        DISPLAY 'Connessione al database riuscita'.
    ELSE
        DISPLAY 'Errore durante la connessione al database: ', SQLERRM.
    END-IF.
    STOP RUN.
- EXEC SQL: Indica l'inizio di un'istruzione SQL.
- INCLUDE SQLCA: Inclusione di SQL Communication Area (SQLCA).
- CONNECT TO: Connessione al database specificato.

Interrogazione del database:
PROCEDURE DIVISION.
    EXEC SQL
        DECLARE employee_cursor CURSOR FOR
        SELECT * FROM employees
    END-EXEC.
    EXEC SQL
        OPEN employee_cursor
    END-EXEC.
    PERFORM UNTIL SQLCODE NOT EQUAL 0
        EXEC SQL
            FETCH NEXT FROM employee_cursor INTO :employee_id, :employee_name
        END-EXEC.
        IF SQLCODE = 0 THEN
            DISPLAY 'Employee ID: ', employee_id, ', Name: ', employee_name.
        END-IF.
    END-PERFORM.
    EXEC SQL
        CLOSE employee_cursor
    END-EXEC.
    STOP RUN.
- DECLARE CURSOR: Dichiarazione di un cursore per l'interrogazione.
- OPEN CURSOR: Apertura del cursore.
- FETCH: Recupero dei record dal cursore.
- CLOSE CURSOR: Chiusura del cursore.

Gestione delle transazioni:
PROCEDURE DIVISION.
    EXEC SQL
        START TRANSACTION
    END-EXEC.
    EXEC SQL
        UPDATE employees
        SET salary = salary * 1.1
        WHERE age > 30
    END-EXEC.
    EXEC SQL
        COMMIT WORK
    END-EXEC.
    STOP RUN.
- START TRANSACTION: Avvio di una transazione.
- COMMIT WORK: Conferma della transazione.

Esecuzione:
- Connessione al database.
- Esecuzione di query per recuperare i dati.
- Aggiornamento dei dati e conferma della transazione.

Conclusioni:
In questa lezione, abbiamo esplorato l'accesso ai database relazionali in COBOL utilizzando il linguaggio SQL. Abbiamo imparato come connettersi a un database, eseguire query per recuperare dati e gestire transazioni per garantire l'integrità dei dati. Nella prossima lezione, esamineremo l'interfacciamento utente in COBOL.


< lezione precedente      lezione successiva >