|
|
|
|
|
- Conditions d'utilisation de la fonction HLibèreRequête
HLibèreRequête (Fonction) En anglais : HFreeQuery Libère les ressources d'une requête (suite à l'utilisation des fonctions HExécuteRequête ou HExécuteRequêteSQL). Quand utiliser la fonction HLibèreRequête ? Cette fonction peut être utilisée lorsqu'aucun traitement n'a plus à utiliser de résultat en provenance d'une requête. Il est conseillé d'utiliser cette fonction sur les requêtes qui renvoient un grand nombre de lignes (à partir de plusieurs dizaines de milliers) afin de libérer de l'espace mémoire.
// Initialise la requête SI HExécuteRequête(MaRequête) = Faux ALORS Erreur("Erreur d'initialisation de la requête" + RC + HErreurInfo()) RETOUR FIN  // Lecture du premier enregistrement de la requête HLitPremier(MaRequête) TANTQUE PAS HEnDehors() // Traitement sur l'enregistrement de la requête ... // Lecture de l'enregistrement suivant HLitSuivant() FIN HLibèreRequête(MaRequête) Syntaxe
<Résultat> = HLibèreRequête([<Requête>])
<Résultat> : Booléen - Vrai si l'opération a été réalisée,
- Faux en cas de problème. La fonction HErreur permet d'identifier l'erreur.
<Requête> : Chaîne de caractères optionnelle Nom de la requête ou d'une source de données associée à une requête (cas d'une libération de ressources suite à l'utilisation des fonctions HExécuteRequête ou HExécuteRequêteSQL). Si ce paramètre n'est pas spécifié, correspond au dernier fichier de données manipulé. Remarques Conditions d'utilisation de la fonction HLibèreRequête Cette fonction ne doit être utilisée QUE lorsque vous n'avez plus besoin de la requête concernée ! Dans l'exemple suivant, la fonction HLibèreRequête est utilisée trop tôt : la table sera complètement faussée. En effet, le remplissage du champ Table par la fonction ConstruitTableFichier se produit dans un processus parallèle en arrière-plan. Donc, la fonction HLibèreRequête va intervenir bien avant la fin du remplissage du champ Table, ce qui rend ce champ inutilisable.
HExécuteRequêteSQL("test", "select * from client") ConstruitTableFichier(TABLE_Table1, "test") HLibèreRequête("test") Remarque : Le problème peut aussi se produire avec une variable de type "source de données". Une variable "source de données" déclarée localement dans un traitement (clic de bouton, procédure, méthode ...) n'existe QUE durant l'exécution de ce code. Pour cette raison un "warning" est affiché si vous utilisez ce type de source de données : "la source de données sera détruite à la fin de ce code".
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|