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 conn

Operacions 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()
    QUIT

INSERT

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()
    QUIT

UPDATE

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()
    QUIT

DELETE

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()
    QUIT

Gestió 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

  1. Configura els paràmetres de connexió per a una base de dades SQL.
  2. Estableix la connexió i comprova si és exitosa.

Exercici 2: Operacions SQL Bàsiques

  1. Crea una taula en la base de dades SQL.
  2. Insereix diverses files a la taula.
  3. Realitza una consulta SELECT per recuperar les dades.
  4. Actualitza una de les files.
  5. 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.

© Copyright 2024. Tots els drets reservats