|
|
|
|
|
- Pourquoi utiliser la constante hRequêteSansCorrection
- Passage de paramètres à la requête
HExécuteRequêteAsynchrone (Fonction) En anglais : HExecuteQueryAsynchronous Exécute une requête de type SELECT de manière asynchrone. Cette requête peut correspondre à : - une requête créée sous l'éditeur de requêtes.
- une variable de type Requête SQL.
Conditions d'utilisation : - Ce mode est prévu pour des requêtes ayant un temps d'exécution de plusieurs secondes. Pour une requête immédiate ou quasi immédiate, ce mécanisme ralentit "trop" la requête.
- La requête doit être de type "SELECT" : elle doit renvoyer des enregistrements.
- L'exécution d'une requête en mode asynchrone peut être effectuée uniquement à partir du contexte principal. Dans les autres cas, il est nécessaire d'utiliser des threads.
- Cette fonction ne permet pas de passer les paramètres à une requête paramétrée. Les paramètres doivent être passés avant l'exécution de la requête.
HExécuteRequêteAsynchrone(REQ_MaRequete, hRequêteDéfaut, MaProcedurePourChaqueEnregistrement, MaProcedureFinale)  PROCÉDURE INTERNE MaProcedurePourChaqueEnregistrement(enreg est un Enregistrement de REQ_MaRequete) Trace("Procédure de traitement de chaque enregistrement " + enreg.NomRubrique) FIN  PROCÉDURE INTERNE MaProcedureFinale(MonRes est un entier) Trace("Procédure de traitement du résultat final") SELON MonRes CAS heraOK : Trace("La requête et le traitement des enregistrements se sont bien exécutés.") CAS heraAnnulée : Trace("Un traitement a renvoyé Faux. La requête et les procédures ont été annulées.") AUTRE CAS : Trace("Une procédure ou l'exécution de la requête a rencontré une erreur.") FIN FIN Syntaxe
Exécuter une requête (sans connexion) Masquer les détails
<Résultat> = HExécuteRequêteAsynchrone(<Nom de la requête> [, <Mode>] , <Procédure WLangage pour chaque enregistrement> [, <Procédure WLangage de fin>])
<Résultat> : booléen - Vrai si l'initialisation de la requête a été effectuée (le code SQL de la requête est valide),
- Faux dans le cas contraire. La fonction HErreur permet d'obtenir plus d'informations sur le problème rencontré.
<Nom de la requête> : Chaîne de caractères Nom de la requête à exécuter : - Nom et chemin complet de la requête (fichier ".WDR") à initialiser.
- Nom logique de la requête à initialiser.
Si une requête de même nom est déjà déclarée, elle est remplacée par la nouvelle requête. - Nom d'une variable de type Requête SQL.
<Mode> : Constante optionnelle de type Entier Option pour l'initialisation de la requête : | | hRequêteDéfaut (valeur par défaut) | Initialisation de la requête. | hRequêteSansCorrection | | hRequêteSansCorrectionHF | |
<Procédure WLangage pour chaque enregistrement> : Nom de procédure Procédure WLangage (également nommée "callback") exécutée pour chaque enregistrement trouvé correspondant à la requête. Cette procédure est de la forme :
PROCEDURE <Nom de la procédure>(UnEnreg est un Enregistrement) où <UnEnreg> est une variable de type Enregistrement correspondant à l'enregistrement en cours (pour la requête exécutée). Par défaut, le procédure renvoie Vrai et passe à l'enregistrement suivant. Si cette procédure renvoie Faux, la requête est annulée et la procédure <Procédure WLangage de fin> est exécutée. <Procédure WLangage de fin> : Nom de procédure optionnel Procédure WLangage (également nommée "callback") exécutée à la fin de l'exécution de la requête. Cette procédure est de la forme :
PROCEDURE <Nom de la procédure>(nRésultat est un entier) où <nRésultat> est une constante de type Entier qui peut correspondre aux valeurs suivantes : | | heraAnnulée | La procédure exécutée pour chaque enregistrement a renvoyé Faux. La requête et les différentes procédures ont été annulées. | heraErreur | La requête et/ou la procédure appelée pour chaque enregistrement ont rencontré une erreur. Il est possible de connaître l'erreur avec la fonction HErreurInfo. | heraOK | La requête et la procédure exécutée pour chaque enregistrement se sont correctement déroulées. | Remarque : La requête est détruite lorsque tous les enregistrements ont été parcourus. La <Procédure WLangage de fin> permet uniquement de savoir comment s'est terminé le parcours.
Exécuter une requête via une connexion Masquer les détails
<Résultat> = HExécuteRequêteAsynchrone(<Nom de la requête> [, <Connexion> [, <Mode>]] , <Procédure WLangage pour chaque enregistrement> [, <Procédure WLangage de fin>])
<Résultat> : booléen - Vrai si l'initialisation de la requête a été effectuée (le code SQL de la requête est valide),
- Faux dans le cas contraire. La fonction HErreur permet d'obtenir plus d'informations sur le problème rencontré.
<Nom de la requête> : Chaîne de caractères Nom de la requête à exécuter : - Nom et chemin complet de la requête (fichier ".WDR") à initialiser.
- Nom logique de la requête à initialiser.
Si une requête de même nom est déjà déclarée, elle est remplacée par la nouvelle requête. - Nom d'une variable de type Requête SQL.
<Connexion> : Chaîne de caractères optionnelle Nom d'une connexion, définie sous l'éditeur d'analyses ou dynamiquement avec la fonction HDécritConnexion. La requête sera exécutée via cette connexion.
<Mode> : Constante optionnelle de type Entier Option pour l'initialisation de la requête : | | hRequêteDéfaut (valeur par défaut) | Initialisation de la requête. | hRequêteSansCorrection | | hRequêteSansCorrectionHF | |
<Procédure WLangage pour chaque enregistrement> : Nom de procédure Procédure WLangage (également nommée "callback") exécutée pour chaque enregistrement trouvé correspondant à la requête. Cette procédure est de la forme :
PROCEDURE <Nom de la procédure>(UnEnreg est un Enregistrement) où <UnEnreg> est une variable de type Enregistrement correspondant à l'enregistrement en cours (pour la requête exécutée). Par défaut, le procédure renvoie Vrai et passe à l'enregistrement suivant. Si cette procédure renvoie Faux, la requête est annulée et la procédure <Procédure WLangage de fin> est exécutée. <Procédure WLangage de fin> : Nom de procédure optionnel Procédure WLangage (également nommée "callback") exécutée à la fin de l'exécution de la requête. Cette procédure est de la forme :
PROCEDURE <Nom de la procédure>(nRésultat est un entier) où <nRésultat> est une constante de type Entier qui peut correspondre aux valeurs suivantes : | | heraAnnulée | La procédure exécutée pour chaque enregistrement a renvoyé Faux. La requête et les différentes procédures ont été annulées. | heraErreur | La requête et/ou la procédure appelée pour chaque enregistrement ont rencontré une erreur. Il est possible de connaître l'erreur avec la fonction HErreurInfo. | heraOK | La requête et la procédure exécutée pour chaque enregistrement se sont correctement déroulées. | Remarque : La requête est détruite lorsque tous les enregistrements ont été parcourus. La <Procédure WLangage de fin> permet uniquement de savoir comment s'est terminé le parcours. Passage de paramètres à la requête Pour passer des paramètres à une requête paramétrée avant de l'exécuter, il est également nécessaire d'utiliser la syntaxe suivante : <Nom de la requête>.<Nom du paramètre 1> = xxx <Nom de la requête>.<Nom du paramètre 2> = xxx <Nom de la requête>.<Nom du paramètre 3> = xxx HExécuteRequêteAsynchrone(<Nom de la requête>, <Procédure>) SI ErreurDétectée = Vrai ALORS ... Remarque : A chaque exécution de la requête paramétrée, la structure des paramètres de la requête est ré-initialisée. Classification Métier / UI : Code métier
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|