Introducció
El SQL inserit en COBOL permet als programes COBOL interactuar directament amb bases de dades relacionals. Aquesta capacitat és crucial per a aplicacions empresarials que necessiten gestionar grans volums de dades de manera eficient. En aquest tema, aprendrem com utilitzar SQL dins de programes COBOL per realitzar operacions de base de dades com ara consultes, insercions, actualitzacions i eliminacions.
Conceptes Clau
- SQL Inserit: És la incorporació de sentències SQL dins del codi COBOL.
- Precompilador: Una eina que processa el codi COBOL amb SQL inserit abans de la compilació.
- Host Variables: Variables COBOL utilitzades per emmagatzemar resultats de consultes SQL o per passar valors a sentències SQL.
Estructura Bàsica
Declaració de la Secció SQL
Abans d'utilitzar SQL en un programa COBOL, cal declarar una secció especial per a SQL. Aquesta secció es declara dins de la DATA DIVISION.
Exemple de Codi
A continuació, es mostra un exemple bàsic d'un programa COBOL que utilitza SQL inserit per seleccionar dades d'una taula de base de dades.
IDENTIFICATION DIVISION. PROGRAM-ID. ExampleSQL. DATA DIVISION. WORKING-STORAGE SECTION. EXEC SQL INCLUDE SQLCA END-EXEC. 01 EMPLOYEE-ID PIC 9(5). 01 EMPLOYEE-NAME PIC X(30). PROCEDURE DIVISION. MAIN-LOGIC. EXEC SQL SELECT EMP_ID, EMP_NAME INTO :EMPLOYEE-ID, :EMPLOYEE-NAME FROM EMPLOYEES WHERE EMP_ID = 1001 END-EXEC. DISPLAY 'Employee ID: ' EMPLOYEE-ID. DISPLAY 'Employee Name: ' EMPLOYEE-NAME. STOP RUN.
Explicació del Codi
- IDENTIFICATION DIVISION: Defineix el nom del programa.
- DATA DIVISION: Conté la secció de treball (WORKING-STORAGE SECTION) on es declaren les variables i la secció SQL.
- EXEC SQL INCLUDE SQLCA END-EXEC: Inclou l'àrea de comunicació SQL (SQLCA) necessària per gestionar errors i altres informacions de l'execució SQL.
- Host Variables:
EMPLOYEE-ID
iEMPLOYEE-NAME
són variables COBOL que emmagatzemaran els resultats de la consulta SQL. - EXEC SQL ... END-EXEC: Conté la sentència SQL per seleccionar dades de la taula
EMPLOYEES
. - DISPLAY: Mostra els resultats de la consulta.
Exercicis Pràctics
Exercici 1: Selecció de Dades
Escriu un programa COBOL que seleccioni el nom i el salari d'un empleat amb un ID específic de la taula EMPLOYEES
.
Solució
IDENTIFICATION DIVISION. PROGRAM-ID. SelectEmployee. DATA DIVISION. WORKING-STORAGE SECTION. EXEC SQL INCLUDE SQLCA END-EXEC. 01 EMPLOYEE-ID PIC 9(5) VALUE 1002. 01 EMPLOYEE-NAME PIC X(30). 01 EMPLOYEE-SALARY PIC 9(7)V99. PROCEDURE DIVISION. MAIN-LOGIC. EXEC SQL SELECT EMP_NAME, EMP_SALARY INTO :EMPLOYEE-NAME, :EMPLOYEE-SALARY FROM EMPLOYEES WHERE EMP_ID = :EMPLOYEE-ID END-EXEC. DISPLAY 'Employee Name: ' EMPLOYEE-NAME. DISPLAY 'Employee Salary: ' EMPLOYEE-SALARY. STOP RUN.
Exercici 2: Inserció de Dades
Escriu un programa COBOL que insereixi un nou registre a la taula EMPLOYEES
.
Solució
IDENTIFICATION DIVISION. PROGRAM-ID. InsertEmployee. DATA DIVISION. WORKING-STORAGE SECTION. EXEC SQL INCLUDE SQLCA END-EXEC. 01 NEW-EMPLOYEE-ID PIC 9(5) VALUE 1003. 01 NEW-EMPLOYEE-NAME PIC X(30) VALUE 'John Doe'. 01 NEW-EMPLOYEE-SALARY PIC 9(7)V99 VALUE 50000.00. PROCEDURE DIVISION. MAIN-LOGIC. EXEC SQL INSERT INTO EMPLOYEES (EMP_ID, EMP_NAME, EMP_SALARY) VALUES (:NEW-EMPLOYEE-ID, :NEW-EMPLOYEE-NAME, :NEW-EMPLOYEE-SALARY) END-EXEC. DISPLAY 'New employee inserted successfully.'. STOP RUN.
Errors Comuns i Solucions
- Error de Sintaxi SQL: Assegura't que les sentències SQL estan correctament formades.
- Variables No Declarades: Verifica que totes les variables utilitzades en les sentències SQL estan declarades en la secció de treball.
- Problemes de Connexió: Assegura't que la connexió a la base de dades està configurada correctament.
Resum
En aquesta secció, hem après com utilitzar SQL inserit en programes COBOL per interactuar amb bases de dades relacionals. Hem vist exemples pràctics de selecció i inserció de dades, i hem discutit alguns errors comuns i les seves solucions. Amb aquests coneixements, estàs preparat per començar a integrar operacions de base de dades en els teus programes COBOL.
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