Libère les ressources d'une requête (suite à l'utilisation des fonctions
<Source>.ExécuteRequête ou
<Source>.ExécuteRequêteSQL).
Quand utiliser la fonction <Source>.Libè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 MaRequête.ExécuteRequête() = Faux ALORS
Erreur("Erreur d'initialisation de la requête" + RC + HErreurInfo())
RETOUR
FIN
// Lecture du premier enregistrement de la requête
MaRequête.LitPremier()
TANTQUE PAS MaRequête.EnDehors()
// Traitement sur l'enregistrement de la requête
...
// Lecture de l'enregistrement suivant
MaRequête.LitSuivant()
FIN
MaRequête.LibèreRequête()
Syntaxe
<Résultat> = <Source>.LibèreRequê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.
<Source> : Type correspondant à la source spécifiée
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 <Source>.ExécuteRequête ou <Source>.ExécuteRequêteSQL).
Remarques
Conditions d'utilisation de la fonction <Source>.Libè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 <Source>.Libè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
<Source>.LibèreRequête va intervenir bien avant la fin du remplissage du champ Table, ce qui rend ce champ inutilisable.
Test.ExécuteRequêteSQL("select * from client")
ConstruitTableFichier(TABLE_Table1, "test")
Test.LibèreRequête()
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".