Módulo sqlite — Bases de Datos SQLite

Archivo: stdlib/std/sqlite.fa

¿Por qué existe?

Proporciona acceso completo a bases de datos SQLite desde programas Forja. Permite crear, consultar y manipular bases de datos SQLite con una API en español, incluyendo soporte para consultas parametrizadas (protección contra SQL injection).

Funciones principales

FunciónDescripción
sqlite_abrir(ruta)Abre (o crea) una base de datos SQLite, retorna un handle
sqlite_cerrar(handle)Cierra la conexión a la base de datos
sqlite_ejecutar(handle, sql)Ejecuta SQL sin resultados (CREATE, INSERT, UPDATE, DELETE)
sqlite_consultar(handle, sql)Ejecuta una consulta SELECT y retorna resultados como arreglo de mapas
sqlite_ultimo_id(handle)Obtiene el último ID insertado (ROWID)
sqlite_tablas(handle)Lista todas las tablas de la base de datos
sqlite_columnas(handle, tabla)Lista las columnas de una tabla
sqlite_ejecutar_params(handle, sql, params)Ejecuta SQL con parámetros (protege contra SQL injection)
sqlite_consultar_params(handle, sql, params)Consulta con parámetros (protege contra SQL injection)

Ejemplo de uso

📄 agenda.fa
importar sqlite

// Abrir base de datos
variable db = sqlite.sqlite_abrir("agenda.db")

// Crear tabla
sqlite.sqlite_ejecutar(db, "CREATE TABLE IF NOT EXISTS contactos (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    nombre TEXT NOT NULL,
    telefono TEXT
)")

// Insertar usando parámetros (seguro)
sqlite.sqlite_ejecutar_params(db,
    "INSERT INTO contactos (nombre, telefono) VALUES (?, ?)",
    ["Ana", "123-456"])

// Consultar
variable resultados = sqlite.sqlite_consultar(db, "SELECT * FROM contactos")
para (variable i = 0; i < colecciones.longitud(resultados); i = i + 1) &brace;
    escribir_linea(resultados[i]["nombre"])
}

// Cerrar
sqlite.sqlite_cerrar(db)

Casos de uso

⚠️ Seguridad: Siempre usá las funciones *_params cuando incluyas datos del usuario en consultas SQL. Esto previene SQL injection.
💡 Sin servidor: SQLite es una base de datos embebida que no requiere un servidor separado. La base de datos es un solo archivo .db en el disco.