L'exécution d'une requête sur le serveur s'effectue en 2 temps. La commande HExecuteRequête demande au serveur de préparer la requête et démarre le transfert des résultats.
En remontant le plus tôt possible cette demande de préparation, pendant le temps d'exécution des autres codes non liés à votre requête, la requête est préparée et le transfert en partie effectué.
Prenons un exemple, j'ai une fenêtre qui liste tous les clients d'un commercial. Dans cette fenêtre, j'affiche également des " Postit " saisis par ce commercial, la date et l'heure et différents affichages liés à des données locales.
Le temps de traitement de ces affichages divers est de 1 seconde.
Le temps de préparation de ma requête jusqu'à la récupération du dernier enregistrement est de 1 seconde. Ma fenêtre met donc 2 secondes pour afficher les enregistrements.
Si je déplace la préparation de ma requête avant l'exécution des codes d'affichages divers, la requête est préparée en même temps que ce code s'exécute. Ma fenêtre met donc 1 seconde à s'afficher.
// Variables utilisées dans la fenêtre
gnNbCommandesest un entier
gmoTotalHT est un monétaire
gmoTotalTTCest un monétaire
// Préparation de la requête d'affichage des clients
// Elle sera prête lorsque l'on en aura besoin.
REQ_ClientParCommercial.IDCOMMERCIAL =COMMERCIAL.IDCOMMERCIAL
HExécuteRequête(REQ_ClientParCommercial)
//Affichagedes graphes de CA
AfficheGrapheCA()
//Affichagedes statistiques de vente
AfficheStat()
//Affichage du planning de la journée
AffichePlanning(DateSys())
//utilisation de la requête...