En aquest tema, aprendrem com accedir i manipular bases de dades utilitzant RPG. Aquest és un aspecte fonamental per a qualsevol aplicació que necessiti emmagatzemar, recuperar i gestionar dades de manera eficient. Explorarem les operacions bàsiques com la connexió a una base de dades, la realització de consultes, la inserció, l'actualització i l'eliminació de registres.
Objectius del Tema
- Entendre com connectar-se a una base de dades des d'un programa RPG.
- Aprendre a realitzar operacions bàsiques de CRUD (Create, Read, Update, Delete).
- Conèixer les funcions i procediments RPG per a la gestió de bases de dades.
- Practicar amb exemples pràctics i exercicis.
- Connexió a una Base de Dades
1.1. Configuració de la Connexió
Per accedir a una base de dades des d'un programa RPG, primer hem de configurar la connexió. Això implica especificar els detalls de la base de dades com el nom del servidor, el nom de la base de dades, l'usuari i la contrasenya.
Dcl-S dbName Char(50) Inz('myDatabase'); Dcl-S dbUser Char(50) Inz('myUser'); Dcl-S dbPassword Char(50) Inz('myPassword'); Dcl-S dbServer Char(50) Inz('myServer'); Exec SQL CONNECT TO :dbName USER :dbUser USING :dbPassword;
1.2. Verificació de la Connexió
Després de configurar la connexió, és important verificar que s'ha establert correctament.
- Operacions CRUD
2.1. Creació de Registres (INSERT)
Per inserir nous registres a la base de dades, utilitzem la instrucció SQL INSERT INTO
.
Dcl-S empName Char(50) Inz('John Doe'); Dcl-S empAge Int(10) Inz(30); Exec SQL INSERT INTO employees (name, age) VALUES (:empName, :empAge); If SQLCODE <> 0; Dsply 'Error en la inserció del registre'; EndIf;
2.2. Lectura de Registres (SELECT)
Per recuperar dades de la base de dades, utilitzem la instrucció SQL SELECT
.
Dcl-S empId Int(10) Inz(1); Dcl-S empName Char(50); Dcl-S empAge Int(10); Exec SQL SELECT name, age INTO :empName, :empAge FROM employees WHERE id = :empId; If SQLCODE <> 0; Dsply 'Error en la recuperació del registre'; Else; Dsply ('Nom: ' + %Trim(empName) + ', Edat: ' + %Char(empAge)); EndIf;
2.3. Actualització de Registres (UPDATE)
Per actualitzar registres existents, utilitzem la instrucció SQL UPDATE
.
Dcl-S empId Int(10) Inz(1); Dcl-S newAge Int(10) Inz(35); Exec SQL UPDATE employees SET age = :newAge WHERE id = :empId; If SQLCODE <> 0; Dsply 'Error en l\'actualització del registre'; EndIf;
2.4. Eliminació de Registres (DELETE)
Per eliminar registres de la base de dades, utilitzem la instrucció SQL DELETE
.
Dcl-S empId Int(10) Inz(1); Exec SQL DELETE FROM employees WHERE id = :empId; If SQLCODE <> 0; Dsply 'Error en l\'eliminació del registre'; EndIf;
- Exemples Pràctics
Exemple 1: Inserir un Nou Empleat
Dcl-S empName Char(50) Inz('Alice Smith'); Dcl-S empAge Int(10) Inz(28); Exec SQL INSERT INTO employees (name, age) VALUES (:empName, :empAge); If SQLCODE <> 0; Dsply 'Error en la inserció del registre'; Else; Dsply 'Registre inserit correctament'; EndIf;
Exemple 2: Recuperar Informació d'un Empleat
Dcl-S empId Int(10) Inz(2); Dcl-S empName Char(50); Dcl-S empAge Int(10); Exec SQL SELECT name, age INTO :empName, :empAge FROM employees WHERE id = :empId; If SQLCODE <> 0; Dsply 'Error en la recuperació del registre'; Else; Dsply ('Nom: ' + %Trim(empName) + ', Edat: ' + %Char(empAge)); EndIf;
- Exercicis Pràctics
Exercici 1: Inserir un Nou Registre
Escriu un programa RPG que insereixi un nou registre a la taula employees
amb els següents detalls:
- Nom: "Carlos Perez"
- Edat: 40
Solució
Dcl-S empName Char(50) Inz('Carlos Perez'); Dcl-S empAge Int(10) Inz(40); Exec SQL INSERT INTO employees (name, age) VALUES (:empName, :empAge); If SQLCODE <> 0; Dsply 'Error en la inserció del registre'; Else; Dsply 'Registre inserit correctament'; EndIf;
Exercici 2: Actualitzar l'Edat d'un Empleat
Escriu un programa RPG que actualitzi l'edat de l'empleat amb ID 3 a 45 anys.
Solució
Dcl-S empId Int(10) Inz(3); Dcl-S newAge Int(10) Inz(45); Exec SQL UPDATE employees SET age = :newAge WHERE id = :empId; If SQLCODE <> 0; Dsply 'Error en l\'actualització del registre'; Else; Dsply 'Registre actualitzat correctament'; EndIf;
Conclusió
En aquesta secció, hem après com connectar-nos a una base de dades i realitzar operacions bàsiques de CRUD utilitzant RPG. Aquestes habilitats són essencials per a qualsevol desenvolupador que treballi amb aplicacions que necessiten gestionar dades de manera eficient. Practica amb els exemples i exercicis proporcionats per consolidar els teus coneixements i estar preparat per a les seccions més avançades del curs.
Curs de Programació RPG
Mòdul 1: Introducció a la Programació RPG
- Què és RPG?
- Configuració del Teu Entorn de Desenvolupament
- Sintaxi i Estructura Bàsiques
- Programa Hello World
Mòdul 2: Conceptes Bàsics
Mòdul 3: Treballant amb Dades
Mòdul 4: Tècniques Avançades de Programació
Mòdul 5: RPG IV i Més Enllà
Mòdul 6: Integrant RPG amb Tecnologies Modernes
Mòdul 7: Aplicacions del Món Real
- Construint una Aplicació Simple
- Estudi de Cas: Sistema de Gestió d'Inventari
- Estudi de Cas: Sistema de Nòmines
- Millors Pràctiques i Revisió de Codi