|
|
|
|
|
- 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
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|