DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Gestion des bases de données / HFSQL / Fonctions HFSQL Client/Serveur
  • Procédure WLangage exécutée dans le thread principal
  • Procédure WLangage exécutée dans un thread secondaire
  • Cas particuliers
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
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.
Exemple
// Lance la surveillance du fichier de données Commande
// La procédure TraiteCommande est appelée pour tout ajout d'enregistrement dans le fichier de données
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 :
hsAjoutSurveille les opérations d'ajout d'enregistrements.
hsModificationSurveille les opérations de modification d'enregistrements.
hsRayeSurveille les opérations de rayage d'enregistrements.
hsSuppressionSurveille les opérations de suppression d'enregistrements.
<Mode d'exécution> : Constante optionnelle
Mode d'exécution de la procédure WLangage :
hThreadSecondaireExé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)
    // La fonction HChangeRep n'est pas prise en compte
    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.
Pour plus de détails sur cette procédure, consultez Paramètres de la procédure utilisée par la fonction HSurveille.

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
Composante : wd290hf.dll
Version minimum requise
  • Version 22
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 12/02/2024

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