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:

EXEC SQL
    <sentencia SQL>
END-EXEC.

Ejemplo de una Sentencia SELECT

EXEC SQL
    SELECT nombre, edad
    INTO :WS-NOMBRE, :WS-EDAD
    FROM empleados
    WHERE id = :WS-ID
END-EXEC.

En este ejemplo:

  • WS-NOMBRE, WS-EDAD y WS-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.

EXEC SQL
    SELECT campo1, campo2
    INTO :variable1, :variable2
    FROM tabla
    WHERE condicion
END-EXEC.

INSERT

La sentencia INSERT se utiliza para agregar nuevos registros a una tabla.

EXEC SQL
    INSERT INTO tabla (campo1, campo2)
    VALUES (:variable1, :variable2)
END-EXEC.

UPDATE

La sentencia UPDATE se utiliza para modificar registros existentes.

EXEC SQL
    UPDATE tabla
    SET campo1 = :variable1
    WHERE condicion
END-EXEC.

DELETE

La sentencia DELETE se utiliza para eliminar registros de una tabla.

EXEC SQL
    DELETE FROM tabla
    WHERE condicion
END-EXEC.

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

  1. Declaración de Variables: Se declaran las variables necesarias para almacenar los datos y el código de estado SQL.
  2. Entrada del Usuario: Se solicita al usuario que ingrese el ID del empleado.
  3. Consulta SQL: Se ejecuta una consulta SQL para obtener el nombre y la edad del empleado con el ID proporcionado.
  4. 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:

  1. Solicitar al usuario que ingrese el ID del empleado.
  2. Ejecutar una consulta SQL para obtener el salario del empleado.
  3. 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:

  1. Solicitar al usuario que ingrese el nombre, edad y salario del nuevo empleado.
  2. Ejecutar una sentencia SQL para insertar el nuevo registro en la tabla de empleados.
  3. 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.

© Copyright 2024. Todos los derechos reservados