Examen du niveau 2 — durci

Examen — questions inédites

2 · Rappel

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

Classic stocke les données dans des fichiers sur disque local ou partage réseau (monoposte/petit réseau) ; Client/Serveur installe un vrai serveur qui traite les requêtes (multi-utilisateurs, volumes, sécurité, accès distants).
2 · Application

2. Yacine doit accélérer les recherches de produits par CodeProduit. Quelle est l'action la plus rentable ?

Indexer une rubrique fréquemment recherchée est l'optimisation la plus rentable : l'index accélère fortement recherches et tris sur cette rubrique.
2 · Rappel

3. Dans une requête SQL, à quoi sert la clause WHERE ?

WHERE applique les conditions de filtrage : on ne garde que certaines lignes. Posée côté base, elle laisse le moteur utiliser ses index et ne transmettre que l'utile.
2 · Application

4. Yacine veut afficher le nom du client à côté de chaque commande. Quel élément de la requête utilise-t-il ?

La jointure combine plusieurs fichiers liés : elle est indispensable pour afficher le nom du client à côté de sa commande au lieu de son seul identifiant.
2 · Arbitrage

5. Yacine hésite entre tout ramener puis trier en WLangage, ou filtrer dans la requête. Que privilégie-t-il ?

Le filtrage côté base est infiniment plus rapide : le moteur utilise ses index et ne transmet que l'utile, alors que tout ramener sature réseau et mémoire pour jeter la majorité des lignes.
2 · Rappel

6. Dans un état, que contient le bloc « corps » ?

Le bloc corps se répète pour CHAQUE enregistrement : c'est le cœur de l'état. Le début de document s'imprime une fois, le haut et le bas de page à chaque page.
2 · Application

7. Yacine veut des sous-totaux par client dans sa facture récapitulative. Comment procède-t-il ?

Les ruptures sont le mécanisme du reporting : un regroupement par client crée un bloc de début et un bloc de fin de rupture où se placent les sous-totaux — à condition que les données soient triées sur cette rubrique.
2 · Arbitrage

8. Pour produire des totaux fiables dans un état, quelle est la meilleure pratique ?

La bonne pratique est de préparer les données via une requête (filtrée, triée) plutôt que de multiplier les calculs dans l'état : l'état devient plus simple, plus fiable et plus réutilisable.
2 · Rappel

9. Quelle boucle WLangage parcourt automatiquement tous les enregistrements et gère la fin du parcours ?

La boucle POUR TOUT est la forme moderne et recommandée : concise, lisible, elle parcourt tous les enregistrements et gère automatiquement la fin du parcours.
2 · Application

10. Yacine affiche son catalogue (des milliers de références) à l'écran. Quel type de table privilégie-t-il ?

Pour des données venant de la base et de gros volumes, la table fichier liée à un fichier ou une requête se remplit automatiquement et ne charge que les lignes affichées : c'est le mode à privilégier en gestion.
2 · Rappel

11. Dans quel traitement d'une fenêtre WinDev charge-t-on les données et prépare-t-on l'écran ?

L'initialisation s'exécute à l'ouverture de la fenêtre : c'est là qu'on charge les données et prépare l'écran. Les déclarations globales ne font que déclarer les variables communes.
2 · Application

12. Yacine veut contrôler immédiatement la quantité saisie dans un champ de commande. Où place-t-il ce contrôle ?

Le contrôle de saisie se place dans la sortie du champ concerné : l'utilisateur obtient un retour immédiat en quittant le champ, plutôt que d'attendre le clic du bouton Valider.
Et après ?
Retour au guideSommaire du guide