En aquest tema, aprendrem com integrar MUMPS amb bases de dades SQL. Aquesta habilitat és crucial per a desenvolupar aplicacions que necessiten accedir a dades emmagatzemades en sistemes SQL, permetent així una major interoperabilitat i flexibilitat en la gestió de dades.
Objectius del Tema
- Entendre els conceptes bàsics de la interfície entre MUMPS i SQL.
- Aprendre a connectar-se a una base de dades SQL des de MUMPS.
- Executar operacions SQL bàsiques (SELECT, INSERT, UPDATE, DELETE) des de MUMPS.
- Gestionar errors i optimitzar les consultes SQL.
Conceptes Bàsics
Què és SQL?
SQL (Structured Query Language) és un llenguatge estàndard per a la gestió de bases de dades relacionals. Permet realitzar operacions com la creació, lectura, actualització i eliminació de dades.
Per què integrar MUMPS amb SQL?
- Interoperabilitat: Permet que les aplicacions MUMPS accedeixin a dades emmagatzemades en bases de dades SQL.
- Flexibilitat: Facilita la migració de dades entre sistemes MUMPS i SQL.
- Escalabilitat: Les bases de dades SQL són àmpliament utilitzades i optimitzades per a grans volums de dades.
Connexió a una Base de Dades SQL
Configuració de la Connexió
Per connectar-se a una base de dades SQL des de MUMPS, necessitem configurar els paràmetres de connexió, com ara l'URL de la base de dades, l'usuari i la contrasenya.
; Exemple de configuració de connexió SET dbURL = "jdbc:mysql://localhost:3306/nom_base_dades" SET dbUser = "usuari" SET dbPassword = "contrasenya"
Establir la Connexió
Utilitzarem una funció per establir la connexió amb la base de dades SQL.
; Funció per establir la connexió
CONNECT(dbURL, dbUser, dbPassword)
NEW conn
SET conn = ##class(%SQL.Connection).%New()
SET conn.URL = dbURL
SET conn.Username = dbUser
SET conn.Password = dbPassword
IF conn.%Connect() {
WRITE "Connexió establerta!", !
} ELSE {
WRITE "Error en la connexió!", !
}
QUIT connOperacions SQL Bàsiques
SELECT
La consulta SELECT s'utilitza per recuperar dades d'una base de dades.
; Exemple de consulta SELECT
DO SELECT^SQL("SELECT * FROM taula WHERE condicio")
SELECT^SQL(query)
NEW result, conn, stmt, rs
SET conn = $$CONNECT^MUMPS(dbURL, dbUser, dbPassword)
SET stmt = conn.%CreateStatement()
SET rs = stmt.%ExecuteQuery(query)
WHILE rs.%Next() {
WRITE rs.%Get("columna"), !
}
DO conn.%Close()
QUITINSERT
La consulta INSERT s'utilitza per afegir noves files a una taula.
; Exemple de consulta INSERT
DO INSERT^SQL("INSERT INTO taula (col1, col2) VALUES ('valor1', 'valor2')")
INSERT^SQL(query)
NEW conn, stmt
SET conn = $$CONNECT^MUMPS(dbURL, dbUser, dbPassword)
SET stmt = conn.%CreateStatement()
IF stmt.%ExecuteUpdate(query) {
WRITE "Fila inserida correctament!", !
} ELSE {
WRITE "Error en la inserció!", !
}
DO conn.%Close()
QUITUPDATE
La consulta UPDATE s'utilitza per modificar dades existents en una taula.
; Exemple de consulta UPDATE
DO UPDATE^SQL("UPDATE taula SET col1 = 'nou_valor' WHERE condicio")
UPDATE^SQL(query)
NEW conn, stmt
SET conn = $$CONNECT^MUMPS(dbURL, dbUser, dbPassword)
SET stmt = conn.%CreateStatement()
IF stmt.%ExecuteUpdate(query) {
WRITE "Fila actualitzada correctament!", !
} ELSE {
WRITE "Error en l'actualització!", !
}
DO conn.%Close()
QUITDELETE
La consulta DELETE s'utilitza per eliminar files d'una taula.
; Exemple de consulta DELETE
DO DELETE^SQL("DELETE FROM taula WHERE condicio")
DELETE^SQL(query)
NEW conn, stmt
SET conn = $$CONNECT^MUMPS(dbURL, dbUser, dbPassword)
SET stmt = conn.%CreateStatement()
IF stmt.%ExecuteUpdate(query) {
WRITE "Fila eliminada correctament!", !
} ELSE {
WRITE "Error en l'eliminació!", !
}
DO conn.%Close()
QUITGestió d'Errors
Captura d'Errors
És important capturar i gestionar errors durant les operacions SQL per assegurar la robustesa de l'aplicació.
; Exemple de captura d'errors
TRY {
DO SELECT^SQL("SELECT * FROM taula WHERE condicio")
} CATCH ex {
WRITE "Error: ", ex.DisplayString(), !
}Exercicis Pràctics
Exercici 1: Connexió a una Base de Dades
- Configura els paràmetres de connexió per a una base de dades SQL.
- Estableix la connexió i comprova si és exitosa.
Exercici 2: Operacions SQL Bàsiques
- Crea una taula en la base de dades SQL.
- Insereix diverses files a la taula.
- Realitza una consulta SELECT per recuperar les dades.
- Actualitza una de les files.
- Elimina una fila de la taula.
Solucions
Solució Exercici 1
; Configuració de la connexió
SET dbURL = "jdbc:mysql://localhost:3306/nom_base_dades"
SET dbUser = "usuari"
SET dbPassword = "contrasenya"
; Establir la connexió
SET conn = $$CONNECT^MUMPS(dbURL, dbUser, dbPassword)
IF conn {
WRITE "Connexió establerta!", !
} ELSE {
WRITE "Error en la connexió!", !
}Solució Exercici 2
; Crear taula
DO INSERT^SQL("CREATE TABLE taula (id INT PRIMARY KEY, nom VARCHAR(50))")
; Inserir files
DO INSERT^SQL("INSERT INTO taula (id, nom) VALUES (1, 'Nom1')")
DO INSERT^SQL("INSERT INTO taula (id, nom) VALUES (2, 'Nom2')")
; Consulta SELECT
DO SELECT^SQL("SELECT * FROM taula")
; Actualitzar fila
DO UPDATE^SQL("UPDATE taula SET nom = 'NouNom' WHERE id = 1")
; Eliminar fila
DO DELETE^SQL("DELETE FROM taula WHERE id = 2")Resum
En aquest tema, hem après com integrar MUMPS amb bases de dades SQL. Hem vist com configurar la connexió, executar operacions SQL bàsiques i gestionar errors. Aquestes habilitats són essencials per a desenvolupar aplicacions robustes i interoperables que poden treballar amb dades emmagatzemades en sistemes SQL.
Curs de Programació en MUMPS (M)
Mòdul 1: Introducció a MUMPS
Mòdul 2: Conceptes Bàsics de Programació
- Variables i Tipus de Dades
- Entrada i Sortida Bàsica
- Estructures de Control: IF, ELSE, FOR, WHILE
- Funcions i Procediments Bàsics
Mòdul 3: Treballant amb Dades
- Introducció a les Variables Globals
- Emmagatzematge i Recuperació de Dades
- Estructures de Dades: Arrays i Llistes
- Gestió d'Arxius en MUMPS
Mòdul 4: Conceptes Avançats de Programació
- Estructures de Control Avançades
- Gestió d'Errors i Depuració
- Programació Modular
- Funcions i Procediments Avançats
Mòdul 5: Gestió de Bases de Dades
- Introducció a les Bases de Dades MUMPS
- Operacions de Base de Dades: CRUD
- Indexació i Cerca
- Seguretat de la Base de Dades
Mòdul 6: Interfícies i Integració
- Interfície amb Altres Llenguatges
- Integració Web
- APIs i Serveis Web
- Interfície amb Bases de Dades SQL
Mòdul 7: Rendiment i Optimització
- Tècniques d'Optimització de Codi
- Gestió de Memòria
- Ajust de Rendiment
- Consideracions de Escalabilitat
Mòdul 8: Temes Avançats
- Concurrència i Processament Paral·lel
- Estructures de Dades Avançades
- Biblioteques i Extensions Personalitzades
- Estudis de Cas i Aplicacions del Món Real
