DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Gestion des bases de données / HFSQL / Fonctions HFSQL
  • Exécution d'une requête asynchrone
HExécuteRequêteAsynchrone (Exemple)
Exécution d'une requête asynchrone
Cet exemple exécute une requête SQL et affiche le résultat dans une table, le tout sans bloquer l'utilisateur et avec une possibilité d'interruption.
REQ_Clients est une Requête SQL =
[
SELECT *
FROM CLIENT
WHERE
CLIENT.NOM LIKE = {pNOM}
]
// Vide le champ Table résultat
TableSupprimeTout(TABLE_REQ_Clients)
TABLE_REQ_Clients.Libellé = "Recherche des clients en cours..."
// S'il y a des paramètres, affectation des paramètres de la requête :
REQ_Clients.pNOM = "DUPOND"
// Lancement de la requête
SI PAS HExécuteRequêteAsynchrone(REQ_Clients, hRequêteDéfaut, ...
 TraitementPourChaqueEnregistrement, TraitementFinRequête) ALORS
Erreur(HErreurInfo())
FIN
 
// Procédure qui sera appelée pour chaque enregistrement
PROCÉDURE INTERNE TraitementPourChaqueEnregistrement(UneLigneResultat est un Enregistrement)
// où UneLigneResultat est un Enregistrement de REQ_Clients
TableAjouteLigne(TABLE_REQ_Clients,...
             UneLigneResultat.NOM,...
             UneLigneResultat.PRENOM,...
             UneLigneResultat.SOCIETE,...
             UneLigneResultat.CODEPOSTAL,...
             UneLigneResultat.VILLE,...    
             UneLigneResultat.PAYS)
   
// Renvoie Vrai pour poursuivre le parcours de la requête
// Faux pour interrompre le parcours, par exemple après la lecture
// d'un nombre maximum d'enregistrements ...
    RENVOYER Vrai
FIN
 
// Procédure qui sera appelée à la fin du parcours de la requête
PROCÉDURE INTERNE TraitementFinRequête(MonRes est un entier)
// Requête terminée
SELON MonRes
CAS heraOK :
TABLE_REQ_Clients.Libellé = "Recherche des clients terminée."
 
CAS heraAnnulée :
TABLE_REQ_Clients.Libellé = "Recherche des clients annulée, affichage des " + ...
TABLE_REQ_Clients.Occurrence + " premier" + ...
AjoutePlurielSiNecessaire(TABLE_REQ_Clients.Occurrence) + ...
" client" + AjoutePlurielSiNecessaire(TABLE_REQ_Clients.Occurrence) + ...
" trouvé" + AjoutePlurielSiNecessaire(TABLE_REQ_Clients.Occurrence)
 
AUTRE CAS : // heraErreur
TABLE_REQ_Clients.Libellé = "Erreur durant la recherche des clients"
ErreurAsynchrone("Erreur durant la récupération des données.", HErreurInfo())
FIN
 
FIN
 
PROCÉDURE INTERNE AjoutePlurielSiNecessaire(nQte est un entier,
sLettrePluriel est une chaîne = "s") : chaîne
SI nQte <=1 ALORS
RENVOYER ""
SINON
RENVOYER sLettrePluriel
FIN
FIN
Version minimum requise
  • Version 26
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale