En este módulo, aprenderemos cómo el Lenguaje de Control (CL) puede interactuar con bases de datos. Este conocimiento es crucial para cualquier programador que necesite manipular datos almacenados en bases de datos desde programas CL. Cubriremos los conceptos básicos, comandos específicos y ejemplos prácticos para que puedas aplicar estos conocimientos en tus proyectos.
Objetivos del Módulo
- Entender cómo CL puede interactuar con bases de datos.
- Aprender los comandos básicos para la manipulación de bases de datos.
- Implementar ejemplos prácticos de interacción con bases de datos.
- Realizar ejercicios para reforzar los conceptos aprendidos.
Contenido
Conceptos Básicos de Interfaz con Bases de Datos
Antes de sumergirnos en los comandos y ejemplos, es importante entender algunos conceptos básicos:
- Base de Datos (DB): Un sistema organizado para almacenar, gestionar y recuperar información.
- Tabla: Una estructura dentro de una base de datos que almacena datos en filas y columnas.
- Registro: Una fila en una tabla que contiene datos relacionados.
- Campo: Una columna en una tabla que contiene un tipo específico de datos.
Comandos de Base de Datos en CL
CL proporciona varios comandos para interactuar con bases de datos. A continuación, se presentan algunos de los comandos más utilizados:
RUNSQLSTM
RUNSQLSTM
Este comando ejecuta una sentencia SQL almacenada en un archivo fuente.
RUNSQL
RUNSQL
Ejecuta una sentencia SQL directamente desde el programa CL.
STRQMQRY
STRQMQRY
Inicia una consulta de Query Management (QM).
CPYFRMQRYF
CPYFRMQRYF
Copia los resultados de una consulta a un archivo físico.
Ejemplos Prácticos
Ejemplo 1: Ejecutar una Consulta SQL
Vamos a ejecutar una consulta SQL que selecciona todos los registros de una tabla llamada EMPLOYEES
.
PGM DCL VAR(&SQLCMD) TYPE(*CHAR) LEN(100) CHGVAR VAR(&SQLCMD) VALUE('SELECT * FROM EMPLOYEES') RUNSQL SQL(&SQLCMD) ENDPGM
Explicación:
DCL VAR(&SQLCMD) TYPE(*CHAR) LEN(100)
: Declara una variable de tipo carácter para almacenar la sentencia SQL.CHGVAR VAR(&SQLCMD) VALUE('SELECT * FROM EMPLOYEES')
: Asigna la sentencia SQL a la variable.RUNSQL SQL(&SQLCMD)
: Ejecuta la sentencia SQL almacenada en la variable.
Ejemplo 2: Copiar Resultados de una Consulta a un Archivo
Vamos a copiar los resultados de una consulta a un archivo físico.
Explicación:
STRQMQRY QMQRY(MYLIB/EMPQUERY)
: Inicia la consultaEMPQUERY
almacenada en la bibliotecaMYLIB
.CPYFRMQRYF FROMOPNID(EMPQUERY) TOFILE(MYLIB/EMPRESULT)
: Copia los resultados de la consulta al archivoEMPRESULT
.
Ejercicios Prácticos
Ejercicio 1: Crear y Ejecutar una Consulta SQL
Instrucciones:
- Crea una tabla llamada
DEPARTMENTS
con los camposDEPT_ID
yDEPT_NAME
. - Inserta algunos registros en la tabla.
- Escribe un programa CL que seleccione todos los registros de la tabla
DEPARTMENTS
.
Solución:
-- Crear la tabla CREATE TABLE DEPARTMENTS ( DEPT_ID INT PRIMARY KEY, DEPT_NAME VARCHAR(100) ); -- Insertar registros INSERT INTO DEPARTMENTS (DEPT_ID, DEPT_NAME) VALUES (1, 'HR'); INSERT INTO DEPARTMENTS (DEPT_ID, DEPT_NAME) VALUES (2, 'Finance'); INSERT INTO DEPARTMENTS (DEPT_ID, DEPT_NAME) VALUES (3, 'IT'); -- Programa CL PGM DCL VAR(&SQLCMD) TYPE(*CHAR) LEN(100) CHGVAR VAR(&SQLCMD) VALUE('SELECT * FROM DEPARTMENTS') RUNSQL SQL(&SQLCMD) ENDPGM
Ejercicio 2: Copiar Resultados a un Archivo
Instrucciones:
- Crea una consulta QM que seleccione todos los registros de la tabla
DEPARTMENTS
. - Escribe un programa CL que copie los resultados de la consulta a un archivo llamado
DEPTRESULT
.
Solución:
-- Crear la consulta QM (almacenada en MYLIB/QMQRY) SELECT * FROM DEPARTMENTS; -- Programa CL PGM STRQMQRY QMQRY(MYLIB/DEPTQUERY) CPYFRMQRYF FROMOPNID(DEPTQUERY) TOFILE(MYLIB/DEPTRESULT) ENDPGM
Conclusión
En este módulo, hemos aprendido cómo interactuar con bases de datos utilizando CL. Hemos cubierto los comandos básicos, ejemplos prácticos y ejercicios para reforzar los conceptos. Ahora deberías sentirte cómodo ejecutando consultas SQL y manipulando datos desde tus programas CL. En el próximo módulo, exploraremos cómo usar APIs para extender las capacidades de tus programas CL.
Curso de CL (Lenguaje de Control)
Módulo 1: Introducción a CL
- ¿Qué es el Lenguaje de Control?
- Configuración de tu Entorno
- Sintaxis y Estructura Básica
- Escribiendo tu Primer Programa CL
Módulo 2: Comandos Básicos de CL
- Introducción a los Comandos de CL
- Comandos de Gestión de Archivos
- Comandos de Gestión de Trabajos
- Comandos de Gestión del Sistema
Módulo 3: Variables y Expresiones
- Entendiendo las Variables
- Definiendo y Usando Variables
- Expresiones y Operadores
- Manipulación de Cadenas
Módulo 4: Estructuras de Control
Módulo 5: Comandos Avanzados de CL
- Operaciones Avanzadas de Archivos
- Programación Avanzada de Trabajos
- Comandos de Configuración del Sistema
- Seguridad y Permisos