OVH Cloud OVH Cloud

Liberer memoire [H.inisan]

6 réponses
Avatar
b
Bonjour,
j'ai vu qu'on pouvait trouver sur le site à Hervé Inisan (self-access) un
utilitaire pour détecter les variables non libérées.
Heu ! ... c'est que j'ai pas trouvé !
Je dois être bête, parce que je pense pas que le site soit mal fait ...
Merci de me dire.

b(°!°)rbbu

6 réponses

Avatar
Anor
Bonjour ,


| Bonjour,
| j'ai vu qu'on pouvait trouver sur le site à Hervé Inisan
| (self-access) un utilitaire pour détecter les variables non libérées.
| Heu ! ... c'est que j'ai pas trouvé !
| Je dois être bête, parce que je pense pas que le site soit mal fait
| ... Merci de me dire.
|
| b(°!°)rbbu


ici peut-être :
http://www.self-access.com/access/index.php?url=grenier/acAssistants.php

("Analyseur de code")
--
à+
Arnaud
-------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
petit à petit, www.anor.fr.st fait son nid
-------------------------------------------
Avatar
b
Salut,
Pas mal le truc de H Inisan !
Juste 3 questions :
1 - qqfois au lancement de l'analyseur j'ai un message d'erreur:
Titre: wca_Entry2
Message: Erreur : Incompatibilité de type
2 - Pourquoi les variables de type As Form non libérés sont signalés et pas
celles de type As String ?
3 - L'analyseur me renvoie un tas de variables INUTILISEE ! C'est quoi ?
C'est grave ?
Merci
@+
b(°!°)rbbu

"" a écrit dans le message de news:
bfbvqk$799$
Merci bien.

@+
b(°!°)rbbu

"Anor" a écrit dans le message de news:
3f190c69$0$23708$
Bonjour ,


| Bonjour,
| j'ai vu qu'on pouvait trouver sur le site à Hervé Inisan
| (self-access) un utilitaire pour détecter les variables non libérées.
| Heu ! ... c'est que j'ai pas trouvé !
| Je dois être bête, parce que je pense pas que le site soit mal fait
| ... Merci de me dire.
|
| b(°!°)rbbu


ici peut-être :
http://www.self-access.com/access/index.php?url=grenier/acAssistants.php

("Analyseur de code")
--
à+
Arnaud
-------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
petit à petit, www.anor.fr.st fait son nid
-------------------------------------------








Avatar
3stone
Salut,


1 - qqfois au lancement de l'analyseur j'ai un message d'erreur:
Titre: wca_Entry2
Message: Erreur : Incompatibilité de type


ah ? je n'ai pas ce problème...

2 - Pourquoi les variables de type As Form non libérés sont signalés et pas
celles de type As String ?


Les variables "standard" du type string, integer, long... sont automatiquement
détruite à la sortie de la sub ou fonction.
Ce n'est pas (forcément) le cas des variables objet !
Autrement dit, tout ce que tu attribue par : Set mavar = Objet ( form, control ... )
demandent à être libérées par Set mavar = Nothing

3 - L'analyseur me renvoie un tas de variables INUTILISEE ! C'est quoi ?


Si tu fait des - Dim machin as ...
et que tu n'utilise pas le "machin", tu crée un variable inutilisée.
Mais, pour cela, il faut être plus prudent et vérifier par toi-même.

Grave, non... a part que tu perds du temps, que tu encombre le code
et que tu complique la maintenance inutilement.


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------

Avatar
Anor
Bonjour 3stone,


.../...
| Autrement dit, tout ce que tu attribue par : Set mavar = Objet (
| form, control ... ) demandent à être libérées par Set mavar | Nothing

Excusez mon intrusion, mais je pose une question qui comme d'habitude n'est pas idiote ... :

Normalement, si on fait :

dim db as database
dim rst as recordset
set db = currentdb
set rst = db.OpenRecordset("latable", dbopendynaset)
rst.close
set rst = nothing
set db = nothing

à priori, on déclare tout, on ouvre correctement et on libère tout proprement.

Mais parfois, on voit des codes qui shuntent la première déclaration database :

dim rst as recordset
set rst = currentdb.OpenRecordset("latable", dbopendynaset)
rst.close
set rst = nothing

Est-ce que dans ce cas, on libère bien tout ?
Quelles sont vos habitudes ?

C'était la minute de Anor, développeur du dimanche ;-)

--
à+
Arnaud
-------------------------------------------
Conseils d'utilisation, sites recommandés :
http://users.skynet.be/mpfa/
petit à petit, www.anor.fr.st fait son nid
-------------------------------------------
Avatar
3stone
Salut Anor,

Anor
Normalement, si on fait :

dim db as database
dim rst as recordset
set db = currentdb
set rst = db.OpenRecordset("latable", dbopendynaset)
rst.close
set rst = nothing
set db = nothing

à priori, on déclare tout, on ouvre correctement et on libère tout proprement.

Mais parfois, on voit des codes qui shuntent la première déclaration database :

dim rst as recordset
set rst = currentdb.OpenRecordset("latable", dbopendynaset)
rst.close
set rst = nothing

Est-ce que dans ce cas, on libère bien tout ?
Quelles sont vos habitudes ?


La pemière version est, a priopri, inutilement "découpée" et aurait put être remplacée par le
seconde méthode.

CurrentDb étant une fonction qui crée une référence à la base en cours, donc, pas de Fonction.Close
ou =Nothing...

Mais, attention...
A chaque utilisation de CurrentDb on crée une nouvelle référence à la bd !

Si tu utilise des propriétés du genre ".LastModified", ".RecordsAffected",
(ou, un traitement en ligne...) il faut veiller à ne faire qu' *une* référence
à la db et donc obligatoirement passer par un:

Dim Db As DAO.Database
Set Db = CurrentDb

et utiliser cette variable

Db étant ici une variable objet, demande alors le traitement habituel (Close, Nothing)


Mon quart d'euro cent ;-)


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------

Avatar
b
Bonsoir,
Pour le message Titre: wca_Entry2 , c'est parce que y'a un mot de passe de
protection de mon code !
Une fois le mot de passe entré, y'a plus ce message d'erreur.
Merci pour le reste.

--
b(°!°)rbbu
"3stone" a écrit dans le message de news:
eJA$
Salut,


1 - qqfois au lancement de l'analyseur j'ai un message d'erreur:
Titre: wca_Entry2
Message: Erreur : Incompatibilité de type


ah ? je n'ai pas ce problème...

2 - Pourquoi les variables de type As Form non libérés sont signalés et
pas


celles de type As String ?


Les variables "standard" du type string, integer, long... sont
automatiquement

détruite à la sortie de la sub ou fonction.
Ce n'est pas (forcément) le cas des variables objet !
Autrement dit, tout ce que tu attribue par : Set mavar = Objet (
form, control ... )

demandent à être libérées par Set mavar = Nothing

3 - L'analyseur me renvoie un tas de variables INUTILISEE ! C'est quoi ?


Si tu fait des - Dim machin as ...
et que tu n'utilise pas le "machin", tu crée un variable inutilisée.
Mais, pour cela, il faut être plus prudent et vérifier par toi-même.

Grave, non... a part que tu perds du temps, que tu encombre le code
et que tu complique la maintenance inutilement.


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------