2.1 · HFSQL : la base de données de WinDev

Niveau 2 · Intermédiaire : données, requêtes & états

2.1HFSQL : la base de données de WinDev

Objectif : Comprendre HFSQL (Classic & Client/Serveur), gérer les données et le centre de contrôle : le socle de données de votre application de gestion.
Temps estimé : 11 min · lecture autonome · Si vous n'avez que 5 min : lisez « L'essentiel en 30s » + le schéma.

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.

Erreur d'interprétation fréquente : « HFSQL Classic et Client/Serveur, c'est juste une option payante ; les index, c'est du confort ; et la sauvegarde, c'est l'affaire de l'éditeur ». Non, triple erreur. Classic stocke les données dans des fichiers sur disque local ou partage réseau, Client/Serveur confie les accès à un serveur centralisé : ce sont deux architectures, pas deux tarifs. Les index sont l'optimisation la plus rentable sur les performances (recherches et tris). Et la sauvegarde est votre responsabilité, quelle que soit la version : une base non sauvegardée est une catastrophe qui attend son heure. Yacine indexe donc et sauvegarde dès le départ.
Les deux modes HFSQL Classic accède à des fichiers sur disque ou partage réseau ; Client/Serveur passe par un serveur qui centralise les accès. HFSQL ClassicFichiers disque / partage réseau+HFSQL Client/ServeurServeur centralise les accès+IncrémentIndex, SQL, transactions, sauvegarde Basculez en Client/Serveur quand les utilisateurs simultanés et les volumes augmentent.
Classic accède à des fichiers sur disque ou partage réseau ; Client/Serveur passe par un serveur qui centralise les accès.
Version texte du schéma (SEO / lecteurs d'écran / traduction) : 1) Yacine, développeur WinDev dans une PME de négoce de matériel électrique à Oran, apprend que HFSQL est le SGBD fourni avec WinDev : inclus, sans licence serveur supplémentaire en usage local. 2) Il distingue les deux modes : Classic (les données sont des fichiers sur disque local ou partage réseau, accédés directement — monoposte ou petit réseau) et Client/Serveur (un vrai serveur traite les requêtes — multi-utilisateurs, gros volumes, sécurité, accès distants). 3) Pour son application de gestion, il commence en Classic, puis bascule en Client/Serveur quand trois commerciaux travaillent en réseau ; il indexe CodeProduit et NomClient et met en place une sauvegarde quotidienne. Leçon : l'index est l'optimisation la plus rentable et la sauvegarde reste sa responsabilité.

🔎 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

  1. 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.
  2. Créez des index sur les rubriques que vous recherchez ou triez souvent (CodeProduit, NomClient) — c'est l'optimisation la plus rentable.
  3. Exploitez les capacités du moteur selon vos besoins : intégrité référentielle, transactions (tout ou rien), journal, réplication.
  4. Mettez en place une politique de sauvegarde des données dès le départ — c'est votre responsabilité, quel que soit le mode.
Vous savez choisir le bon mode HFSQL, accélérer les accès par les index, exploiter les fonctions du moteur et sécuriser vos données par des sauvegardes.

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.

Checklist sortie de section
  • 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é.
Auto-évaluation 1-5 : est-ce que je choisis le bon mode HFSQL selon mon contexte ?Auto-évaluation 1-5 : sais-je indexer les rubriques à optimiser et sauvegarder ma base ?

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.

Vérifiez votre compréhension

Quelle est la différence entre HFSQL Classic et Client/Serveur ?

Ressources supplémentaires (optionnel, pour aller plus loin)

Examen du niveau 2Questions inédites et durcies pour valider vos acquis