En aquest mòdul, aprendrem com el Llenguatge de Control (CL) pot interactuar amb bases de dades. Aquesta habilitat és crucial per a la gestió de dades i l'automatització de processos en entorns empresarials. Explorarem les comandes bàsiques per accedir, manipular i gestionar dades en bases de dades.

Objectius del Tema

  • Comprendre com connectar-se a una base de dades des de CL.
  • Aprendre a executar consultes SQL des de CL.
  • Manipular dades utilitzant comandes CL.
  • Gestionar transaccions de bases de dades.

  1. Connexió a una Base de Dades

1.1. Configuració de la Connexió

Per connectar-se a una base de dades, primer hem de configurar els paràmetres de connexió. Això inclou el nom de la base de dades, l'usuari, la contrasenya i altres paràmetres necessaris.

/* Exemple de configuració de la connexió */
DCL VAR(&DB_NAME) TYPE(*CHAR) LEN(10) VALUE('MYDB')
DCL VAR(&USER) TYPE(*CHAR) LEN(10) VALUE('USER')
DCL VAR(&PASSWORD) TYPE(*CHAR) LEN(10) VALUE('PASSWORD')

1.2. Establir la Connexió

Utilitzem la comanda CONNECT per establir la connexió amb la base de dades.

/* Establir la connexió */
CONNECT TO &DB_NAME USER &USER USING &PASSWORD

  1. Executar Consultes SQL

2.1. Comanda RUNSQL

La comanda RUNSQL permet executar instruccions SQL directament des de CL.

/* Executar una consulta SQL */
RUNSQL SQL('SELECT * FROM EMPLOYEES') COMMIT(*NONE)

2.2. Emmagatzemar Resultats

Podem emmagatzemar els resultats de les consultes en variables per a un ús posterior.

/* Emmagatzemar resultats en variables */
DCL VAR(&EMP_ID) TYPE(*CHAR) LEN(10)
DCL VAR(&EMP_NAME) TYPE(*CHAR) LEN(50)

RUNSQL SQL('SELECT EMP_ID, EMP_NAME FROM EMPLOYEES WHERE EMP_ID = 1') OUTPUT(*OUTFILE) OUTFILE(QTEMP/EMPRESULT)

  1. Manipulació de Dades

3.1. Inserir Dades

Utilitzem la comanda RUNSQL per inserir dades en una taula.

/* Inserir dades en una taula */
RUNSQL SQL('INSERT INTO EMPLOYEES (EMP_ID, EMP_NAME) VALUES (2, ''John Doe'')') COMMIT(*NONE)

3.2. Actualitzar Dades

Podem actualitzar registres existents amb la comanda RUNSQL.

/* Actualitzar dades en una taula */
RUNSQL SQL('UPDATE EMPLOYEES SET EMP_NAME = ''Jane Doe'' WHERE EMP_ID = 2') COMMIT(*NONE)

3.3. Esborrar Dades

Per esborrar registres, també utilitzem RUNSQL.

/* Esborrar dades d'una taula */
RUNSQL SQL('DELETE FROM EMPLOYEES WHERE EMP_ID = 2') COMMIT(*NONE)

  1. Gestió de Transaccions

4.1. Iniciar una Transacció

Les transaccions ens permeten agrupar múltiples operacions de bases de dades en una sola unitat de treball.

/* Iniciar una transacció */
RUNSQL SQL('BEGIN TRANSACTION')

4.2. Confirmar una Transacció

Després de realitzar les operacions necessàries, confirmem la transacció.

/* Confirmar la transacció */
RUNSQL SQL('COMMIT')

4.3. Desfer una Transacció

Si alguna cosa surt malament, podem desfer la transacció.

/* Desfer la transacció */
RUNSQL SQL('ROLLBACK')

Exercicis Pràctics

Exercici 1: Connexió i Consulta

  1. Configura una connexió a una base de dades anomenada TESTDB amb l'usuari TESTUSER i la contrasenya TESTPASS.
  2. Executa una consulta per obtenir tots els registres de la taula PRODUCTS.

Solució

DCL VAR(&DB_NAME) TYPE(*CHAR) LEN(10) VALUE('TESTDB')
DCL VAR(&USER) TYPE(*CHAR) LEN(10) VALUE('TESTUSER')
DCL VAR(&PASSWORD) TYPE(*CHAR) LEN(10) VALUE('TESTPASS')

CONNECT TO &DB_NAME USER &USER USING &PASSWORD

RUNSQL SQL('SELECT * FROM PRODUCTS') COMMIT(*NONE)

Exercici 2: Inserir i Actualitzar Dades

  1. Inserta un nou registre a la taula CUSTOMERS amb CUST_ID 3 i CUST_NAME 'Alice'.
  2. Actualitza el nom del client amb CUST_ID 3 a 'Alice Smith'.

Solució

RUNSQL SQL('INSERT INTO CUSTOMERS (CUST_ID, CUST_NAME) VALUES (3, ''Alice'')') COMMIT(*NONE)
RUNSQL SQL('UPDATE CUSTOMERS SET CUST_NAME = ''Alice Smith'' WHERE CUST_ID = 3') COMMIT(*NONE)

Resum

En aquest tema, hem après com connectar-nos a una base de dades des de CL, executar consultes SQL, manipular dades i gestionar transaccions. Aquestes habilitats són fonamentals per a la gestió eficient de dades en entorns empresarials. En el proper tema, explorarem com utilitzar APIs per ampliar les capacitats dels nostres programes CL.

© Copyright 2024. Tots els drets reservats