El SQL embebido en COBOL permite a los programas COBOL interactuar directamente con bases de datos relacionales. Esta integración es crucial para aplicaciones empresariales que manejan grandes volúmenes de datos. En este módulo, aprenderás cómo utilizar SQL dentro de tus programas COBOL para realizar operaciones de base de datos.
Contenido
Introducción al SQL Embebido
El SQL embebido permite incluir sentencias SQL directamente dentro del código COBOL. Esto se logra utilizando una precompilación que traduce las sentencias SQL en llamadas a la base de datos.
Ventajas del SQL Embebido
- Integración Directa: Permite la manipulación directa de datos desde el programa COBOL.
- Eficiencia: Reduce la necesidad de transferir datos entre el programa y la base de datos.
- Mantenimiento: Facilita el mantenimiento del código al tener las operaciones de base de datos y la lógica de negocio en un solo lugar.
Sintaxis Básica del SQL Embebido
Para utilizar SQL embebido en COBOL, se deben seguir ciertos pasos y convenciones. A continuación, se presenta la estructura básica:
Ejemplo de una Sentencia SELECT
En este ejemplo:
WS-NOMBRE
,WS-EDAD
yWS-ID
son variables COBOL que se utilizan para almacenar los resultados de la consulta y los parámetros de entrada.
Declaraciones SQL Comunes
SELECT
La sentencia SELECT
se utiliza para recuperar datos de la base de datos.
INSERT
La sentencia INSERT
se utiliza para agregar nuevos registros a una tabla.
UPDATE
La sentencia UPDATE
se utiliza para modificar registros existentes.
DELETE
La sentencia DELETE
se utiliza para eliminar registros de una tabla.
Manejo de Errores en SQL Embebido
Es crucial manejar los errores que pueden ocurrir durante la ejecución de sentencias SQL. Esto se hace utilizando el código de estado SQL (SQLCODE
).
Ejemplo de Manejo de Errores
EXEC SQL SELECT nombre INTO :WS-NOMBRE FROM empleados WHERE id = :WS-ID END-EXEC. IF SQLCODE NOT = 0 DISPLAY 'Error en la consulta SQL: ' SQLCODE END-IF.
Ejemplo Práctico
A continuación, se presenta un ejemplo completo que incluye una consulta SELECT y el manejo de errores.
Código COBOL
IDENTIFICATION DIVISION. PROGRAM-ID. EjemploSQL. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-ID PIC 9(5). 01 WS-NOMBRE PIC X(20). 01 WS-EDAD PIC 9(2). 01 SQLCODE PIC S9(9) COMP. PROCEDURE DIVISION. DISPLAY 'Ingrese el ID del empleado: '. ACCEPT WS-ID. EXEC SQL SELECT nombre, edad INTO :WS-NOMBRE, :WS-EDAD FROM empleados WHERE id = :WS-ID END-EXEC. IF SQLCODE = 0 DISPLAY 'Nombre: ' WS-NOMBRE DISPLAY 'Edad: ' WS-EDAD ELSE DISPLAY 'Error en la consulta SQL: ' SQLCODE END-IF. STOP RUN.
Explicación
- Declaración de Variables: Se declaran las variables necesarias para almacenar los datos y el código de estado SQL.
- Entrada del Usuario: Se solicita al usuario que ingrese el ID del empleado.
- Consulta SQL: Se ejecuta una consulta SQL para obtener el nombre y la edad del empleado con el ID proporcionado.
- Manejo de Errores: Se verifica el
SQLCODE
para determinar si la consulta fue exitosa o si ocurrió un error.
Ejercicios Prácticos
Ejercicio 1: Consulta Básica
Objetivo: Escribir un programa COBOL que recupere y muestre el salario de un empleado basado en su ID.
Instrucciones:
- Solicitar al usuario que ingrese el ID del empleado.
- Ejecutar una consulta SQL para obtener el salario del empleado.
- Mostrar el salario en pantalla.
Ejercicio 2: Inserción de Datos
Objetivo: Escribir un programa COBOL que inserte un nuevo registro en la tabla de empleados.
Instrucciones:
- Solicitar al usuario que ingrese el nombre, edad y salario del nuevo empleado.
- Ejecutar una sentencia SQL para insertar el nuevo registro en la tabla de empleados.
- Manejar cualquier error que pueda ocurrir durante la inserción.
Soluciones
Solución Ejercicio 1
IDENTIFICATION DIVISION. PROGRAM-ID. ConsultaSalario. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-ID PIC 9(5). 01 WS-SALARIO PIC 9(7)V99. 01 SQLCODE PIC S9(9) COMP. PROCEDURE DIVISION. DISPLAY 'Ingrese el ID del empleado: '. ACCEPT WS-ID. EXEC SQL SELECT salario INTO :WS-SALARIO FROM empleados WHERE id = :WS-ID END-EXEC. IF SQLCODE = 0 DISPLAY 'Salario: ' WS-SALARIO ELSE DISPLAY 'Error en la consulta SQL: ' SQLCODE END-IF. STOP RUN.
Solución Ejercicio 2
IDENTIFICATION DIVISION. PROGRAM-ID. InsercionEmpleado. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-NOMBRE PIC X(20). 01 WS-EDAD PIC 9(2). 01 WS-SALARIO PIC 9(7)V99. 01 SQLCODE PIC S9(9) COMP. PROCEDURE DIVISION. DISPLAY 'Ingrese el nombre del empleado: '. ACCEPT WS-NOMBRE. DISPLAY 'Ingrese la edad del empleado: '. ACCEPT WS-EDAD. DISPLAY 'Ingrese el salario del empleado: '. ACCEPT WS-SALARIO. EXEC SQL INSERT INTO empleados (nombre, edad, salario) VALUES (:WS-NOMBRE, :WS-EDAD, :WS-SALARIO) END-EXEC. IF SQLCODE = 0 DISPLAY 'Empleado insertado correctamente.' ELSE DISPLAY 'Error en la inserción SQL: ' SQLCODE END-IF. STOP RUN.
Conclusión
En este módulo, has aprendido cómo utilizar SQL embebido en COBOL para interactuar con bases de datos. Has visto la sintaxis básica, cómo manejar errores y has trabajado con ejemplos prácticos. Estos conocimientos te permitirán crear aplicaciones COBOL más robustas y eficientes que puedan manipular datos directamente desde la base de datos. En el próximo módulo, profundizaremos en las operaciones de base de datos y el manejo de cursores.
Curso de Programación COBOL
Módulo 1: Introducción a COBOL
- ¿Qué es COBOL?
- Historia de COBOL
- Configuración del Entorno COBOL
- Estructura Básica de un Programa COBOL
Módulo 2: Sintaxis Básica de COBOL y Tipos de Datos
Módulo 3: Estructuras de Control
Módulo 4: Trabajando con Datos
- Manejo de Archivos en COBOL
- Procesamiento de Archivos Secuenciales
- Procesamiento de Archivos Indexados
- Procesamiento de Archivos Relativos
Módulo 5: Manejo Avanzado de Datos
Módulo 6: Subprogramas y Programación Modular
Módulo 7: Manejo de Errores y Depuración
Módulo 8: COBOL y Bases de Datos
Módulo 9: Temas Avanzados
- COBOL Orientado a Objetos
- COBOL y Servicios Web
- Optimización del Rendimiento
- Mejores Prácticas en Programación COBOL