En aquest tema, aprendrem sobre la gestió de cursors en COBOL quan treballem amb bases de dades. Els cursors són una eina essencial per gestionar conjunts de resultats de consultes SQL dins d'un programa COBOL. Ens permeten processar múltiples files de dades una a una, cosa que és crucial per a moltes aplicacions empresarials.
Conceptes Clau
-
Què és un Cursor?
- Un cursor és un mecanisme que permet recórrer un conjunt de resultats fila per fila.
- S'utilitza per gestionar consultes SQL que retornen múltiples files.
-
Tipus de Cursors
- Cursors Implícits: Creats automàticament pel sistema per a operacions SQL simples.
- Cursors Explícits: Definits i gestionats pel programador per a un control més gran sobre el conjunt de resultats.
-
Operacions Bàsiques amb Cursors
- Declaració del Cursor: Definir el cursor i l'SQL associat.
- Obertura del Cursor: Executar la consulta SQL i preparar el conjunt de resultats.
- Extracció de Files: Recuperar files del conjunt de resultats una a una.
- Tancament del Cursor: Alliberar els recursos associats amb el cursor.
Declaració del Cursor
Per declarar un cursor en COBOL, utilitzem la sentència DECLARE CURSOR
. Aquí teniu un exemple bàsic:
EXEC SQL DECLARE my_cursor CURSOR FOR SELECT emp_id, emp_name, emp_salary FROM employees WHERE emp_department = 'SALES' END-EXEC.
Obertura del Cursor
Després de declarar el cursor, l'hem d'obrir per executar la consulta SQL i preparar el conjunt de resultats:
Extracció de Files
Per recuperar files del conjunt de resultats, utilitzem la sentència FETCH
. Aquí teniu un exemple de com fer-ho:
Aquest codi recupera una fila del conjunt de resultats i emmagatzema els valors en les variables COBOL emp-id
, emp-name
i emp-salary
.
Tancament del Cursor
Un cop hem acabat de processar les files, hem de tancar el cursor per alliberar els recursos:
Exemple Complet
A continuació, es mostra un exemple complet que inclou la declaració, obertura, extracció i tancament d'un cursor:
IDENTIFICATION DIVISION. PROGRAM-ID. CursorExample. DATA DIVISION. WORKING-STORAGE SECTION. 01 emp-id PIC 9(5). 01 emp-name PIC X(20). 01 emp-salary PIC 9(7)V99. PROCEDURE DIVISION. EXEC SQL DECLARE my_cursor CURSOR FOR SELECT emp_id, emp_name, emp_salary FROM employees WHERE emp_department = 'SALES' END-EXEC. EXEC SQL OPEN my_cursor END-EXEC. PERFORM UNTIL SQLCODE NOT = 0 EXEC SQL FETCH my_cursor INTO :emp-id, :emp-name, :emp-salary END-EXEC IF SQLCODE = 0 DISPLAY 'Employee ID: ' emp-id DISPLAY 'Employee Name: ' emp-name DISPLAY 'Employee Salary: ' emp-salary END-IF END-PERFORM. EXEC SQL CLOSE my_cursor END-EXEC. STOP RUN.
Exercici Pràctic
Exercici:
Creeu un programa COBOL que utilitzi un cursor per recuperar i mostrar tots els productes d'una taula products
on el preu sigui superior a 100.
Solució:
IDENTIFICATION DIVISION. PROGRAM-ID. ProductCursorExample. DATA DIVISION. WORKING-STORAGE SECTION. 01 prod-id PIC 9(5). 01 prod-name PIC X(30). 01 prod-price PIC 9(7)V99. PROCEDURE DIVISION. EXEC SQL DECLARE product_cursor CURSOR FOR SELECT product_id, product_name, product_price FROM products WHERE product_price > 100 END-EXEC. EXEC SQL OPEN product_cursor END-EXEC. PERFORM UNTIL SQLCODE NOT = 0 EXEC SQL FETCH product_cursor INTO :prod-id, :prod-name, :prod-price END-EXEC IF SQLCODE = 0 DISPLAY 'Product ID: ' prod-id DISPLAY 'Product Name: ' prod-name DISPLAY 'Product Price: ' prod-price END-IF END-PERFORM. EXEC SQL CLOSE product_cursor END-EXEC. STOP RUN.
Resum
En aquesta secció, hem après què són els cursors i com utilitzar-los en COBOL per gestionar conjunts de resultats de consultes SQL. Hem vist com declarar, obrir, extreure files i tancar un cursor, i hem practicat amb un exemple complet i un exercici pràctic. La gestió de cursors és una habilitat essencial per treballar amb bases de dades en COBOL, i dominar-la us permetrà crear aplicacions més eficients i robustes.
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