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ón | Descripció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
- Aplicaciones con persistencia: Agendas, inventarios, registros
- Análisis de datos: Consultar y procesar datos estructurados
- Prototipado rápido: Base de datos embebida sin servidor
- Aplicaciones desktop: Almacenamiento local para apps GUI
⚠️ 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.