|
|
|
|
|
- Procédure WLangage exécutée dans le thread principal
- Procédure WLangage exécutée dans un thread secondaire
- Cas particuliers
HSurveille (Fonction) En anglais : HWatch
Disponible uniquement avec ce type de connexion
Déclenche la surveillance des actions d'écriture (ajout, modification ou suppression) effectuées sur un fichier d'un serveur HFSQL. En cas de modification, une procédure spécifique peut être déclenchée. Cette surveillance peut être arrêtée via la fonction HSurveilleStop.
HSurveille(Commande, TraiteCommande, hNumEnrTous, hsAjout)
Syntaxe
<Résultat> = HSurveille(<Fichier de données> , <Procédure WLangage> [, <Numéro d'enregistrement> [, <Action à  surveiller> [, <Mode d'exécution>]]])
<Résultat> : Booléen - Vrai si la surveillance du fichier de données est activée,
- Faux dans le cas contraire. Pour plus de détails sur l'erreur, utilisez la fonction ErreurInfo.
<Fichier de données> : Chaîne de caractères optionnelle Nom du fichier de données HFSQL à manipuler. Ce fichier de données est associé à une connexion et à un serveur. Si ce paramètre correspond à une chaîne vide (""), la fonction HSurveille manipule le dernier fichier de données utilisé par la dernière fonction de gestion HFSQL (fonction commençant par la lettre H). <Procédure WLangage> : Nom de procédure Nom de la procédure WLangage (également appelée "callback") appelée lors d'un changement sur le fichier de données spécifié. Pour plus de détails sur cette procédure, consultez Paramètres de la procédure utilisée par la fonction HSurveille. <Numéro d'enregistrement> : Entier optionnel - Numéro de l'enregistrement à surveiller.
- Constante hNumEnrTous pour surveiller tous les enregistrements du fichier de données (c'est-à -dire tout le fichier de données).
<Action à surveiller> : Constante ou combinaison de constantes optionnelle Actions à surveiller pour lesquelles la procédure doit être lancée : | | hsAjout | Surveille les opérations d'ajout d'enregistrements. | hsModification | Surveille les opérations de modification d'enregistrements. | hsRaye | Surveille les opérations de rayage d'enregistrements. | hsSuppression | Surveille les opérations de suppression d'enregistrements. |
<Mode d'exécution> : Constante optionnelle Mode d'exécution de la procédure WLangage :
| | hThreadSecondaire | Exécution de la procédure WLangage dans un thread secondaire. |
Par défaut, la procédure WLangage est exécutée dans le thread principal. Remarques Procédure WLangage exécutée dans le thread principal Par défaut, la procédure WLangage est appelée dans le thread principal de l'application, avec le contexte HFSQL correspondant à la procédure : - Si la procédure est une procédure locale d'une fenêtre utilisant un contexte indépendant, le contexte utilisé sera celui de la fenêtre.
- Si la procédure appartient à un composant utilisant un contexte indépendant, le contexte utilisé sera celui du composant.
| Attention : La procédure associée à la fonction HSurveille peut être appelée à n'importe quel moment dans l'application. Si la procédure effectue des parcours HFSQL ou des déplacements dans des fichiers de données, cela impactera l'application (comme les timers). Il peut donc être nécessaire d'utiliser : - les fonctions HSauvePosition et HRetourPosition pour sauvegarder les contextes des fichiers manipulés.
- une variable de type Alias pour effectuer les manipulations sur des fichiers alias.
Il ne faut pas utiliser la fonction Multitâche dans le code de la procédure. |
Pour plus de détails sur cette procédure, consultez Paramètres de la procédure utilisée par la fonction HSurveille. Procédure WLangage exécutée dans un thread secondaire Si la procédure WLangage est appelée dans un thread secondaire : - une copie "légère" du contexte HFSQL est effectuée au moment du premier appel à la fonction HSurveille. Seuls les répertoires où se trouvent les fichiers de données en HFSQL Classic et/ou les connexions en HFSQL Client/Serveur sont mémorisés.
Remarque : Si la fonction HChangeRep est appelée entre deux appels à la fonction HSurveille, la fonction HChangeRep n'est pas prise en compte. Exemple :
HSurveille(UnFichier, hThreadSecondaire)
HChangeRep(UnAutreFichier)
HSurveille(UnAutreFichier, hThreadSecondaire)
- il est interdit de manipuler l'UI (fenêtres, champs, etc.) dans le thread secondaire. Lorsqu'un thread secondaire doit interagir avec l'utilisateur ou mettre à jour l'UI, il doit utiliser un traitement lancé depuis le thread principal. Ce traitement peut correspondre à :
- une procédure globale du projet ou une procédure locale (d'une fenêtre, etc.) appelée par la fonction ExécuteThreadPrincipal,
- l'événement "Demande de mise à jour de l'affichage" d'une fenêtre exécuté grâce à la fonction DemandeMiseAJourUI.
Cas particuliers La surveillance est définie pour un fichier de données et une connexion : - Si le nom physique ou la connexion associés au nom logique du fichier de données change, le fichier surveillé par le serveur reste celui indiqué au moment de l'appel de la fonction HSurveille.
- Si la connexion est fermée, la surveillance est automatiquement arrêtée.
- Si la connexion est perdue puis restaurée par la reconnexion automatique, la surveillance est maintenue.
Pour arrêter la surveillance du fichier de données, utilisez la fonction HSurveilleStop. Service Windows : Les fonctions HSurveille et HSurveilleStop peuvent être utilisées dans un service Windows. Si HSurveille est utilisée dans un service Windows, le test de cette fonction ne pourra être effectué que sur le service déployé, et non lors du "Go" du service. Classification Métier / UI : Code métier
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|