OVH Cloud OVH Cloud

fermer une base de données en quittant son programme

4 réponses
Avatar
dav
apres utilisation d'une base de données access en DAO sous VB6, quand je
quitte mes programmes je mets sur les évènements Unload et QueryUnload
ceci :

sql = ""
matable.close
set matable = Nothing
mabase.close
set mabase = Nothing

mais j'ai déclaré dans un module pas mal de constantes et de variables.
y a t-il un moyen simple de tout décharger de la mémoire avant de
quitter un programme, style balayage des valeurs....et remise à zéro de
tout avec with par exemple.

merci,
dav

4 réponses

Avatar
Jean-Marc
"dav" a écrit dans le message de
news:41715f4e$0$26695$

Hello,

apres utilisation d'une base de données access en DAO sous VB6, quand je
quitte mes programmes je mets sur les évènements Unload et QueryUnload
ceci :

sql = ""
matable.close
set matable = Nothing
mabase.close
set mabase = Nothing



C'est très bien.

mais j'ai déclaré dans un module pas mal de constantes et de variables.
y a t-il un moyen simple de tout décharger de la mémoire avant de
quitter un programme, style balayage des valeurs....et remise à zéro de
tout avec with par exemple.



C'est inutile. Ce que tu fais est suffisant.
Le reste, c'est à notre copain l'OS de s'en
occuper.

Les seuls choses à décharger, ce sont les choses
créées ou instanciées dynamiquement. Le reste est pris sur
le tas et est libéré tout seul par l'OS quand tu quittes.

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Avatar
christophe-pasde
Bonjour,

Jean-Marc t'a trés bien répondu, juste une remarque:
Avec les base de données prend l'habitude d'ouvrir l'objet database et
de le fermer au grés des besoins.
Personnellement je travaille sous DAO et chaque fonction ou procédure
ouvre l'objet database puis querydef puis recordset, puis en quittant la
fonction ou la proc detruit ces objets dans le sens inverse de leurs
création.
Il me semble avoir lu dans la MSDN que cette manière de procéder était
préférable, si quelqu'un a des éléments plus précis ...(ou si je me trompe)

Christophe

dav a écrit :
apres utilisation d'une base de données access en DAO sous VB6, quand je
quitte mes programmes je mets sur les évènements Unload et QueryUnload
ceci :

sql = ""
matable.close
set matable = Nothing
mabase.close
set mabase = Nothing

mais j'ai déclaré dans un module pas mal de constantes et de variables.
y a t-il un moyen simple de tout décharger de la mémoire avant de
quitter un programme, style balayage des valeurs....et remise à zéro de
tout avec with par exemple.

merci,
dav




Avatar
Gloops
Salut,

A tempérer j'imagine si on a quinze lectures de tables à faire à la
suite ...
_________________________________________________
christophe-pasde<> a écrit, le 17/10/2004 16:25 :

Bonjour,

Jean-Marc t'a trés bien répondu, juste une remarque:
Avec les base de données prend l'habitude d'ouvrir l'objet database et
de le fermer au grés des besoins.
Personnellement je travaille sous DAO et chaque fonction ou procédure
ouvre l'objet database puis querydef puis recordset, puis en quittant la
fonction ou la proc detruit ces objets dans le sens inverse de leurs
création.
Il me semble avoir lu dans la MSDN que cette manière de procéder
était préférable, si quelqu'un a des éléments plus précis ...(ou si je
me trompe)

Christophe

dav a écrit :

apres utilisation d'une base de données access en DAO sous VB6, quand
je quitte mes programmes je mets sur les évènements Unload et
QueryUnload ceci :

sql = ""
matable.close
set matable = Nothing
mabase.close
set mabase = Nothing

mais j'ai déclaré dans un module pas mal de constantes et de variables.
y a t-il un moyen simple de tout décharger de la mémoire avant de
quitter un programme, style balayage des valeurs....et remise à zéro
de tout avec with par exemple.

merci,
dav






Avatar
christophe-pasde
Merci,

De fait je l'utilise au travers d'une interface dont les méthode génére
un objet ou une collection d'objet qui sont utilisé par l'application.
Et bien entendu s'il faut quinze collections différentes l'interface est
appelée quinze fois au travers de quinze méthodes différentes.

Peut-être pourrais-je ouvrir un objet database à travers une procédure
init de l'interface et le fermer sur terminate ?
Je ne pense pas qu'il y ait un gain de traitement

Christophe


Gloops a écrit :

Salut,

A tempérer j'imagine si on a quinze lectures de tables à faire à la
suite ...
_________________________________________________
christophe-pasde<> a écrit, le 17/10/2004 16:25 :


Bonjour,

Jean-Marc t'a trés bien répondu, juste une remarque:
Avec les base de données prend l'habitude d'ouvrir l'objet database et
de le fermer au grés des besoins.
Personnellement je travaille sous DAO et chaque fonction ou procédure
ouvre l'objet database puis querydef puis recordset, puis en quittant
la fonction ou la proc detruit ces objets dans le sens inverse de
leurs création.
Il me semble avoir lu dans la MSDN que cette manière de procéder
était préférable, si quelqu'un a des éléments plus précis ...(ou si je
me trompe)

Christophe

dav a écrit :

apres utilisation d'une base de données access en DAO sous VB6, quand
je quitte mes programmes je mets sur les évènements Unload et
QueryUnload ceci :

sql = ""
matable.close
set matable = Nothing
mabase.close
set mabase = Nothing

mais j'ai déclaré dans un module pas mal de constantes et de variables.
y a t-il un moyen simple de tout décharger de la mémoire avant de
quitter un programme, style balayage des valeurs....et remise à zéro
de tout avec with par exemple.

merci,
dav