ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Exclusive WINDEV, WEBDEV and WINDEV Mobile SaaS new feature. See "Using SaaS-exclusive new features in a project".
Help / WLanguage / Managing databases / HFSQL / HFSQL Client/Server functions
  • Conditions d'utilisation
  • Ré-indexation automatique
  • Ré-indexation "à chaud"
  • Calcul des statistiques
  • Répertoire des fichiers temporaires
  • Droits d'accès au fichier de données
WINDEV
WindowsLinuxJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac Catalyst
Others
Stored procedures
HReindexAsynchronous (Function)
In french: HRéindexeAsynchrone
Reconstruit l'index d'un fichier de données HFSQL Client/Serveur (fichier d'extension ".NDX"). Cette réindexation est asynchrone : elle est effectuée sur le serveur et ne bloque pas le poste Client.
Il est également possible de ré-indexer :
  • les index full-text (fichiers d'extension ".FTX"),
  • les index spatiaux (fichiers d'extension ".SDX").
La ré-indexation d'un fichier de données peut être effectuée même si des applications accèdent à ce fichier de données. Pour plus de détails, consultez les remarques.
Rappel : La ré-indexation ré-organise les index et peut libérer l'espace laissé libre lors des suppressions d'enregistrements. Après ré-indexation, l'accès aux index est optimal. La ré-indexation peut être rendue nécessaire par la perte ou l'altération du fichier d'index. La fonction HVérifieIndex permet de vérifier régulièrement l'état du fichier d'index.
New in SaaS
Cette fonction est une nouveauté disponible à partir de WINDEV Suite SaaS 2025 Update 2.
Pour plus de détails, consultez Utiliser les nouveautés de WINDEV Suite SaaS 2025.
Example
CnxBaseDeDonnées is Connection
TableauFichier is array of hFileParameter
MonFichierParam is hFileParameter
MonFichierParam.Name = "ActionPossible"
MonFichierParam.Password = "MotDePasse"
// Propriété Option de la variable hParamètreFichier non prise en compte
ArrayAdd(TableauFichier, MonFichierParam)
// Lance la réindexation
IF bTâcheDeFond THEN
	HReindexAsynchronous(CnxBaseDeDonnées, TableauFichier, hBackgroundTask, 60, CB_HRéindexeAsynchrone)
ELSE
	HReindexAsynchronous(CnxBaseDeDonnées, TableauFichier, CB_HRéindexeAsynchrone)
END

	INTERNAL PROCEDURE CB_HRéindexeAsynchrone(MonFichier is string, Res is boolean)
		IF Res THEN
			Trace("Fichier traité : " + MonFichier)
		ELSE
			Trace("Erreur Fichier " + MonFichier + ErrorInfo())
		END
	END
Syntax
<Résultat> = HRéindexeAsynchrone(<Connexion> , <Fichiers de données à vérifier> [, <Mode> , <Taux de densité>] [, <Procédure WLangage>])
<Résultat>: Booléen
  • Vrai si la vérification a été lancée,
  • Faux dans le cas contraire.
<Connexion>: Chaîne de caractères ou variable de type Connexion
Connexion vers le serveur contenant les fichiers de données à manipuler. Cette connexion correspond :
<Fichiers de données à vérifier>: Tableau de variables de type hParamètreFichier
Nom du tableau de variables de type hParamètreFichier correspondant à la liste des fichiers de données à traiter.
<Mode>: Constante ou combinaison de constantes de type entier (optionnel)
Paramétrage de la ré-indexation :
hFTXRé-indexation des index full-text.
hMmoCompactageCompactage et défragmentation des fichiers de type "Mmo".

Attention : Cette constante ne peut pas être combinée avec les constantes hNdxCompactage, hVérifieMémo, hFTX, hSDX, hNdxNormal ou hNdxSuppression.
hNdxCompactageRé-indexation avec compactage : seuls les enregistrements actifs sont conservés. Tous les autres enregistrements sont définitivement supprimés. L'espace libéré par les suppressions est supprimé dans le fichier de données ".FIC" et dans l'index ".NDX".
Remarque : Si des enregistrements sont en transaction, le compactage est automatiquement désactivé.
hNdxMinimalRé-indexation ne prenant en compte que les clés corrompues. Ce paramètre est ignoré si les constantes hNdxSuppression ou hNdxCompactage sont activées.
hNdxMuetRé-indexation sans affichage.
hNdxNormal
(valeur par défaut)
Ré-indexation classique (avec statistiques et sans compactage).
Les statistiques permettent d'optimiser les requêtes et les filtres (voir Notes). Le calcul des statistiques prend en compte uniquement les enregistrements actifs.
hNdxSansStatRé-indexation sans calcul de statistiques. Cette constante permet d'obtenir un gain de place car les fichiers d'index seront moins importants.
Attention : Les statistiques sont très importantes pour obtenir des temps d'exécution corrects lors de l'utilisation de requêtes, de filtres avec condition et de vues avec condition.
hNdxSuppressionRé-indexation avec suppression des enregistrements endommagés.
hSDXRé-indexation des index spatiaux.
hTâcheDeFondRé-indexation effectuée en tâche de fond. Les applications ne sont pas bloquées pendant la ré-indexation.
hVérifieMémoRé-indexation normale avec vérification des mémos et correction si nécessaire (permet de récupérer une partie des mémos endommagés).
WINDEVWEBDEV - Server code Remarque : Avant de faire une réindexation des mémos, il est possible de vérifier régulièrement l'état des mémos grâce aux fonctions :
<Taux de densité>: Entier compris entre 1 et 100
Taux de remplissage des index. Par défaut, ce taux a pour valeur 60.
Plus ce taux est important, plus l'index est dense et de petite taille. Dans ce cas, les parcours, recherches, filtres et requêtes seront plus rapides. Les ajouts d'enregistrements et les modifications d'enregistrements pourront être ralentis.
Plus ce taux est faible, moins l'index sera dense et plus sa taille sera importante. Dans ce cas, les parcours, recherches, filtres et requêtes seront ralentis. Les ajouts d'enregistrements et les modifications d'enregistrements seront plus rapides.
<Procédure WLangage>: Nom de procédure optionnel
Nom de la procédure WLangage (également nommée "callback") appelée pour chaque fichier de données traité. Cette procédure permet de manipuler le fichier de données en cours.
Pour plus de détails sur cette procédure, consultez Paramètres de la procédure utilisée par la fonction HReindexAsynchronous.
Remarks

Conditions d'utilisation

  • La fonction HReindexAsynchronous permet de ré-indexer un fichier de données HFSQL Client/Serveur.
  • La fonction HReindexAsynchronous permet de réindexer les fichiers de données d'un cluster. Dans ce cas :
    • La réindexation est effectuée sur le noeud auquel l'utilisateur est connecté.
    • Seule une réindexation à chaud est disponible (constante hTâcheDeFond).
WINDEVWEBDEV - Server codeReports and QueriesiPhone/iPadUser code (UMC)External languageAjaxHFSQL ClassicHFSQL Client/Server

Ré-indexation automatique

La ré-indexation d'un fichier de données peut être rendue nécessaire par la perte ou l'altération du fichier d'index. Une ré-indexation automatique des fichiers de données peut être mise en place. Pour plus de détails, consultez l'aide de la fonction HRéindexe.
WINDEVWEBDEV - Server codeReports and QueriesiPhone/iPadUser code (UMC)AjaxHFSQL ClassicHFSQL Client/Server

Ré-indexation "à chaud"

La ré-indexation d'un fichier de données HFSQL Client/Serveur peut être effectuée même si des applications accèdent à ce fichier de données.
Pendant la ré-indexation, les différentes applications manipulant les données du fichier de données (lecture ou écriture d'enregistrements) seront temporairement arrêtées/bloquées jusqu'à la fin de la ré-indexation.
WINDEV Une fenêtre apparaît indiquant que le fichier de données est en cours de ré-indexation (appelée aussi réorganisation). Cette fenêtre est affichée pendant toute la durée de la ré-indexation et ne peut être fermée. Une jauge de progression indique l'état de la ré-indexation.
Il est possible de personnaliser cette fenêtre et/ou de ne plus l'afficher. Pour plus de détails, consultez Gestion assistée des erreurs HFSQL.
Pour éviter les effets de clignotement, la fenêtre de ré-indexation s'affiche uniquement si la ré-indexation risque de durer plus de 2 secondes. Dans ce cas, cette fenêtre apparaît au bout de 0.7 secondes.
Remarques :
  • La ré-indexation "à chaud" ne peut pas être effectuée si des enregistrements sont bloqués en lecture/écriture dans le fichier de données à ré-indexer. Si les enregistrements sont uniquement bloqués en écriture, la ré-indexation à chaud peut être effectuée.
  • Si la constante hTâcheDeFond est utilisée, la ré-indexation est effectuée en tâche de fond et les applications utilisant le fichier de données ne seront pas arrêtées.

Calcul des statistiques

Le calcul des statistiques permet d'optimiser les requêtes et les filtres sur le fichier de données. Ce calcul prend en compte uniquement les enregistrements actifs. Ce calcul peut également être obtenu par:
Remarque : Pour que le calcul des statistiques soit efficace, il est nécessaire de réaliser ce calcul sur tous les fichiers de données (par exemple dans le cas d'une requête multifichier).

Répertoire des fichiers temporaires

Pendant la ré-indexation, des fichiers temporaires peuvent être créés. Par défaut, ces fichiers sont créés dans le répertoire temporaire de Windows ou dans le répertoire courant si il n'y a pas assez de place.
Le répertoire utilisé pour stocker les fichiers temporaires sur le serveur peut être défini :

Droits d'accès au fichier de données

La ré-indexation provoque la recréation du fichier de données sur disque. Dans un système d'allocation gérant les droits au niveau des fichiers (NTFS, etc.), le fichier de données après ré-indexation aura donc les droits du répertoire auquel il appartient.
Si avant la ré-indexation, le fichier de données avait des droits particuliers différents de ceux du dossier, il est nécessaire de les redéfinir au niveau de Windows après la ré-indexation.
Business / UI classification: Business Logic
Component: wd300hf.dll
Minimum version required
  • Version 2025 (SaaS)
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 05/12/2025

Send a report | Local help