2.1HFSQL: la base de datos de WinDev
Lo esencial en 30 segundos
- HFSQL es el SGBD que se entrega con WinDev: incluido, sin licencia de servidor adicional en uso local y perfectamente integrado en el taller.
- Dos modos que hay que distinguir: Classic (datos en archivos en el disco local o en un recurso compartido de red — monopuesto o pequeña red) y Cliente/Servidor (un servidor real centraliza los accesos — multiusuario, volúmenes, seguridad, accesos remotos).
- El índice (la «clave») es la optimización más rentable; el motor también gestiona SQL, la integridad referencial, las transacciones, el journal y la replicación, y WinDev sabe conectarse a otras bases.
Mini-caso hilado — Yacine monta la base de datos de su aplicación
Yacine, desarrollador WinDev en una pyme de venta de material eléctrico en Orán, pone en marcha la aplicación de gestión (clientes, productos, pedidos, facturas, existencias). Primero debe elegir sobre qué apoyar los datos. Al principio, solo una persona introduce los pedidos: opta por HFSQL Classic, ya que la base está incluida y sin licencia de servidor adicional. Pero el jefe anuncia pronto tres comerciales en red y consultas cada vez más pesadas: Yacine pasa entonces a HFSQL Cliente/Servidor, un servidor real que centraliza los accesos. Sobre todo, se asegura de indexar los campos más buscados (CodeProduit, NomClient), porque es, señala, la optimización más rentable. Por último, implanta una copia de seguridad diaria: los datos del negocio son su responsabilidad.
Caso autónomo de esta sección: reaparece en el curso, el esquema, el guion y el reto de 48 h de la sección 2.1.
1. El SGBD integrado de WinDev
HFSQL es el SGBD (sistema de gestión de bases de datos) que se entrega con WinDev. Es una baza importante: la base está incluida, sin licencia de servidor adicional en uso local y perfectamente integrada en el taller. Yacine no tiene que montar un motor de terceros para su aplicación de gestión.
2. Classic o Cliente/Servidor
(1) HFSQL Classic: los datos están en archivos situados en el disco local o en un recurso compartido de red; la aplicación accede a ellos directamente. Sencillo y gratuito — ideal en monopuesto o para una pequeña red. (2) HFSQL Cliente/Servidor: se instala un servidor real; las aplicaciones le envían consultas y él gestiona centralmente los accesos. Es la solución multiusuario, de grandes volúmenes, seguridad y accesos remotos. El análisis y el código WLangage siguen siendo en gran medida idénticos de un modo a otro.
3. Índices y capacidades del motor
HFSQL gestiona los índices (las «claves») que aceleran mucho las búsquedas y las ordenaciones: indexar un campo buscado con frecuencia es la optimización más rentable. Admite SQL, la integridad referencial, las transacciones (todo o nada), el journal y la replicación. Y WinDev no encierra: también se conecta a SQL Server, MySQL, Oracle y PostgreSQL mediante accesos nativos u ODBC.
🔎 Ejemplo concreto — 🔎 Ejemplo concreto — ¿Classic o Cliente/Servidor?
El modo adecuado depende del número de usuarios y del volumen: Yacine elige según su negocio.
// HFSQL Classic : fichiers locaux ou sur partage reseau
HOuvre("Produit")
HIndexe("Produit", "CodeProduit") // optimisation la plus rentable
// HFSQL Client/Serveur : serveur centralise les acces
HOpenConnection("CS_Negoce")
HChangeConnection(Produit, "CS_Negoce")
Lecture : Classic = monoposte / petit reseau ; C/S = multi-utilisateurs
Reflexe : indexer les rubriques recherchees + sauvegarder les donnees
Lectura: Classic basta en monopuesto o pequeña red; Cliente/Servidor se impone en cuanto llegan varios usuarios y grandes volúmenes.
Lección: el código WLangage y el análisis cambian poco de un modo a otro; el índice y la copia de seguridad son los verdaderos reflejos que hay que adoptar.
Vocabulario de la sección
- HFSQL
- El SGBD que se entrega con WinDev, integrado en el taller e incluido sin licencia de servidor adicional en uso local.
Ejemplo sencillo: Yacine se apoya en HFSQL para almacenar productos, pedidos y facturas.
Lo que no es: un motor externo que hay que instalar y licenciar por separado.
Reflejo: base incluida con WinDev → HFSQL.
- HFSQL Classic
- Modo en el que los datos son archivos en el disco local o en un recurso compartido de red, accedidos directamente por la aplicación.
Ejemplo sencillo: Yacine empieza en Classic, solo él introduce los pedidos.
Lo que no es: un servidor que centraliza las consultas de varios puestos.
Reflejo: monopuesto o pequeña red → Classic.
- HFSQL Cliente/Servidor
- Modo en el que un servidor real gestiona centralmente los datos; las aplicaciones le envían consultas.
Ejemplo sencillo: Yacine pasa a Cliente/Servidor con tres comerciales en red.
Lo que no es: archivos compartidos en una simple carpeta de red.
Reflejo: multiusuario, volúmenes, accesos remotos → Cliente/Servidor.
- Índice (clave)
- Estructura que acelera mucho las búsquedas y las ordenaciones sobre un campo; indexar los campos frecuentes es la optimización más rentable.
Ejemplo sencillo: Yacine indexa CodeProduit y NomClient.
Lo que no es: un campo rara vez buscado, dejado sin índice.
Reflejo: acelerar búsquedas y ordenaciones → un índice.
- Copia de seguridad de los datos
- Copia de seguridad de la base, a cargo del desarrollador sea cual sea la versión.
Ejemplo sencillo: Yacine programa una copia de seguridad diaria del negocio.
Lo que no es: confiar en la sola presencia de los archivos en el disco.
Reflejo: proteger los datos → la copia de seguridad.
En la práctica — En la práctica — Elegir y aprovechar HFSQL
- Determine su modo: Classic (monopuesto o red muy pequeña, máxima sencillez) o Cliente/Servidor (multiusuario, volúmenes, seguridad, accesos remotos), como Yacine.
- Cree índices sobre los campos que busca u ordena a menudo (CodeProduit, NomClient) — es la optimización más rentable.
- Aproveche las capacidades del motor según sus necesidades: integridad referencial, transacciones (todo o nada), journal, replicación.
- Implante una política de copia de seguridad de los datos desde el principio — es su responsabilidad, sea cual sea el modo.
Guion paso a paso — montar la base como Yacine (4 min)
1) Abra los archivos de su análisis (Produit, Client, Commande). 2) En Classic, abra un archivo con HOuvre("Produit"); en Cliente/Servidor, conéctese mediante HOpenConnection y luego HChangeConnection. 3) Indexe los campos buscados: HIndexe("Produit", "CodeProduit"). 4) Active las transacciones para las escrituras sensibles. 5) Programe una copia de seguridad diaria de la base.
Conserve esta base: las secciones 2.2 (consultas), 2.3 (informes) y 2.4 (recorrido) se apoyan en los archivos e índices creados aquí.
Plantilla para copiar y pegar — mi base HFSQL
Mode : Classic (monoposte/petit reseau) OU Client/Serveur (multi-utilisateurs)
Index : sur les rubriques recherchees/triees (optimisation la plus rentable)
Moteur : SQL, integrite referentielle, transactions, journal, replication
Autres bases: SQL Server, MySQL, Oracle, PostgreSQL (natif ou ODBC)
Sauvegarde : quotdienne, des le depart (VOTRE responsabilite)
Regle : basculer en C/S quand utilisateurs simultanes et volumes augmentent
Arranque en Classic
Yacine empieza en HFSQL Classic, solo él introduce los pedidos: máxima sencillez y gratuidad.
Paso a Cliente/Servidor
Llegan tres comerciales en red: Yacine centraliza en HFSQL Cliente/Servidor.
Abrir a otras bases
Un cliente impone SQL Server: Yacine se conecta mediante un acceso nativo sin salir de WinDev.
Indexar los campos adecuados
Yacine crea un índice sobre CodeProduit: las búsquedas de productos se vuelven instantáneas.
✓ Buenas prácticas
- Elegir el modo según los usuarios y los volúmenes (Classic o Cliente/Servidor).
- Indexar los campos buscados u ordenados con frecuencia.
- Implantar una copia de seguridad desde el principio.
✗ Errores frecuentes
- Creer que HFSQL Classic y Cliente/Servidor son solo una opción tarifaria.
- Descuidar los índices en los campos muy solicitados.
- Aplazar la copia de seguridad — es su responsabilidad.
Puntos clave
- HFSQL es el SGBD que se entrega con WinDev (incluido, sin licencia de servidor adicional en local).
- Dos modos: Classic (archivos en disco o recurso de red) y Cliente/Servidor (servidor centralizado).
- El índice es la optimización más rentable; el motor gestiona SQL, integridad, transacciones, journal y replicación.
- WinDev también se conecta a SQL Server, MySQL, Oracle y PostgreSQL — y la copia de seguridad sigue siendo su responsabilidad.
Reto 48 h — aplícalo mañana
Como Yacine, abra un archivo de su análisis y cree un índice sobre el campo que busca con más frecuencia, y luego relance una búsqueda para medir la mejora. Anote en una frase por qué sigue en Classic o pasa a Cliente/Servidor según el número de usuarios, y lance una copia de seguridad de la base.
- Distingo los modos HFSQL Classic y Cliente/Servidor.
- Sé indexar los campos buscados con frecuencia.
- Entiendo que la copia de seguridad de los datos es mi responsabilidad.
Preguntas frecuentes
¿Cuándo debo pasar de HFSQL Classic a Cliente/Servidor?
En cuanto aparecen varios usuarios simultáneos intensivos, lentitudes crecientes, grandes volúmenes, necesidad de seguridad fina o de accesos remotos. Buena noticia: el análisis y el código WLangage siguen siendo en gran medida idénticos, por lo que el cambio no lo pone todo en entredicho.
¿Cuál es la mejor optimización de rendimiento con HFSQL?
Indexar los campos que busca u ordena a menudo: es la optimización más rentable, acelera mucho las búsquedas y las ordenaciones. Después viene el filtrado en la base (ver 2.2) en lugar de cargar todo el archivo.
¿Cuál es la diferencia entre HFSQL Classic y Cliente/Servidor?