2.1HFSQL : la base de données de WinDev
L'essentiel en 30 secondes
- HFSQL est le SGBD fourni avec WinDev : inclus, sans licence serveur supplémentaire en usage local, et parfaitement intégré à l'atelier.
- Deux modes à distinguer : Classic (données dans des fichiers sur disque local ou partage réseau — monoposte ou petit réseau) et Client/Serveur (un vrai serveur centralise les accès — multi-utilisateurs, volumes, sécurité, accès distants).
- L'index (la « clé ») est l'optimisation la plus rentable ; le moteur gère aussi le SQL, l'intégrité référentielle, les transactions, le journal et la réplication, et WinDev sait se connecter à d'autres bases.
Mini-cas filé — Yacine pose la base de données de son application
Yacine, développeur WinDev dans une PME de négoce de matériel électrique à Oran, démarre l'application de gestion (clients, produits, commandes, factures, stocks). Il doit d'abord choisir sur quoi reposer les données. Au départ, seule une personne saisit les commandes : il retient HFSQL Classic, la base étant incluse et sans licence serveur supplémentaire. Mais le patron annonce bientôt trois commerciaux en réseau et des requêtes de plus en plus lourdes : Yacine bascule alors en HFSQL Client/Serveur, un vrai serveur qui centralise les accès. Il veille surtout à indexer les rubriques les plus recherchées (CodeProduit, NomClient) car c'est, note-t-il, l'optimisation la plus rentable. Enfin, il met en place une sauvegarde quotidienne : les données du négoce sont sa responsabilité.
Cas autonome de cette section : il revient dans le cours, le schéma, le script et le défi 48h de la section 2.1.
1. Le SGBD intégré de WinDev
HFSQL est le SGBD (système de gestion de base de données) fourni avec WinDev. C'est un atout majeur : la base est incluse, sans licence serveur supplémentaire en usage local, et parfaitement intégrée à l'atelier. Yacine n'a pas à assembler un moteur tiers pour son application de gestion.
2. Classic ou Client/Serveur
(1) HFSQL Classic : les données sont dans des fichiers posés sur le disque local ou un partage réseau ; l'application y accède directement. Simple et gratuit — idéal en monoposte ou pour un petit réseau. (2) HFSQL Client/Serveur : un vrai serveur est installé ; les applications lui envoient des requêtes et il gère centralement les accès. C'est la solution multi-utilisateurs, gros volumes, sécurité et accès distants. L'analyse et le code WLangage restent très largement identiques d'un mode à l'autre.
3. Index et capacités du moteur
HFSQL gère les index (les « clés ») qui accélèrent fortement recherches et tris : indexer une rubrique fréquemment recherchée est l'optimisation la plus rentable. Il supporte le SQL, l'intégrité référentielle, les transactions (tout ou rien), le journal et la réplication. Et WinDev n'enferme pas : il se connecte aussi à SQL Server, MySQL, Oracle, PostgreSQL via des accès natifs ou ODBC.
🔎 Exemple concret — 🔎 Exemple concret — Classic ou Client/Serveur ?
Le bon mode dépend du nombre d'utilisateurs et du volume : Yacine choisit selon son négoce.
// 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
Lecture : Classic suffit en monoposte ou petit réseau ; Client/Serveur s'impose dès que plusieurs utilisateurs et de gros volumes arrivent.
Leçon : le code WLangage et l'analyse changent peu d'un mode à l'autre ; l'index et la sauvegarde sont les vrais réflexes à prendre.
Vocabulaire de la section
- HFSQL
- Le SGBD fourni avec WinDev, intégré à l'atelier et inclus sans licence serveur supplémentaire en usage local.
Exemple simple : Yacine s'appuie sur HFSQL pour stocker produits, commandes et factures.
Ce que ce n'est pas : un moteur externe à installer et licencier séparément.
Réflexe : base incluse avec WinDev → HFSQL.
- HFSQL Classic
- Mode où les données sont des fichiers sur le disque local ou un partage réseau, accédés directement par l'application.
Exemple simple : Yacine démarre en Classic, seul à saisir les commandes.
Ce que ce n'est pas : un serveur centralisant les requêtes de plusieurs postes.
Réflexe : monoposte ou petit réseau → Classic.
- HFSQL Client/Serveur
- Mode où un vrai serveur gère centralement les données ; les applications lui envoient des requêtes.
Exemple simple : Yacine bascule en Client/Serveur avec trois commerciaux en réseau.
Ce que ce n'est pas : des fichiers partagés sur un simple dossier réseau.
Réflexe : multi-utilisateurs, volumes, accès distants → Client/Serveur.
- Index (clé)
- Structure qui accélère fortement recherches et tris sur une rubrique ; indexer les rubriques fréquentes est l'optimisation la plus rentable.
Exemple simple : Yacine indexe CodeProduit et NomClient.
Ce que ce n'est pas : une rubrique rarement recherchée, laissée sans index.
Réflexe : accélérer recherches et tris → un index.
- Sauvegarde des données
- Copie de sécurité de la base, à la charge du développeur quelle que soit la version.
Exemple simple : Yacine programme une sauvegarde quotidienne du négoce.
Ce que ce n'est pas : compter sur la seule présence des fichiers sur le disque.
Réflexe : protéger les données → la sauvegarde.
En pratique — En pratique — Choisir et exploiter HFSQL
- Déterminez votre mode : Classic (monoposte ou très petit réseau, simplicité maximale) ou Client/Serveur (multi-utilisateurs, volumes, sécurité, accès distants), comme Yacine.
- Créez des index sur les rubriques que vous recherchez ou triez souvent (CodeProduit, NomClient) — c'est l'optimisation la plus rentable.
- Exploitez les capacités du moteur selon vos besoins : intégrité référentielle, transactions (tout ou rien), journal, réplication.
- Mettez en place une politique de sauvegarde des données dès le départ — c'est votre responsabilité, quel que soit le mode.
Script pas-à-pas — poser la base comme Yacine (4 min)
1) Ouvrez les fichiers de votre analyse (Produit, Client, Commande). 2) En Classic, ouvrez un fichier avec HOuvre("Produit") ; en Client/Serveur, connectez-vous via HOpenConnection puis HChangeConnection. 3) Indexez les rubriques recherchées : HIndexe("Produit", "CodeProduit"). 4) Activez les transactions pour les écritures sensibles. 5) Programmez une sauvegarde quotidienne de la base.
Gardez ce socle : les sections 2.2 (requêtes), 2.3 (états) et 2.4 (parcours) s'appuient sur les fichiers et index créés ici.
Modèle copier-coller — mon socle 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
Démarrage en Classic
Yacine commence en HFSQL Classic, seul à saisir les commandes : simplicité et gratuité maximales.
Passage en Client/Serveur
Trois commerciaux arrivent en réseau : Yacine centralise dans HFSQL Client/Serveur.
Ouvrir à d'autres bases
Un client impose du SQL Server : Yacine s'y connecte via un accès natif sans quitter WinDev.
Indexer les bonnes rubriques
Yacine pose un index sur CodeProduit : les recherches de produits deviennent instantanées.
✓ Bonnes pratiques
- Choisir le mode selon les utilisateurs et les volumes (Classic ou Client/Serveur).
- Indexer les rubriques fréquemment recherchées ou triées.
- Mettre en place une sauvegarde dès le départ.
✗ Pièges fréquents
- Croire que HFSQL Classic et Client/Serveur ne sont qu'une option tarifaire.
- Négliger les index sur les rubriques très sollicitées.
- Reporter la sauvegarde — c'est votre responsabilité.
Points clés à retenir
- HFSQL est le SGBD fourni avec WinDev (inclus, sans licence serveur supplémentaire en local).
- Deux modes : Classic (fichiers disque ou partage réseau) et Client/Serveur (serveur centralisé).
- L'index est l'optimisation la plus rentable ; le moteur gère SQL, intégrité, transactions, journal, réplication.
- WinDev se connecte aussi à SQL Server, MySQL, Oracle, PostgreSQL — et la sauvegarde reste votre responsabilité.
Défi 48h — appliquez demain
Comme Yacine, ouvrez un fichier de votre analyse et posez un index sur la rubrique que vous recherchez le plus souvent, puis relancez une recherche pour mesurer le gain. Notez en une phrase pourquoi vous restez en Classic ou passez en Client/Serveur selon le nombre d'utilisateurs, et déclenchez une sauvegarde de la base.
- Je distingue les modes HFSQL Classic et Client/Serveur.
- Je sais indexer les rubriques fréquemment recherchées.
- Je comprends que la sauvegarde des données est ma responsabilité.
Questions fréquentes
Quand dois-je passer de HFSQL Classic à Client/Serveur ?
Dès qu'apparaissent plusieurs utilisateurs simultanés intensifs, des lenteurs croissantes, de gros volumes, un besoin de sécurité fine ou d'accès distants. Bonne nouvelle : l'analyse et le code WLangage restent très largement identiques, la bascule ne remet donc pas tout en cause.
Quelle est la meilleure optimisation de performance sous HFSQL ?
Indexer les rubriques que vous recherchez ou triez souvent : c'est l'optimisation la plus rentable, elle accélère fortement recherches et tris. Vient ensuite le filtrage côté base (voir 2.2) plutôt que le chargement de tout le fichier.
Quelle est la différence entre HFSQL Classic et Client/Serveur ?