OVH Cloud OVH Cloud

Variable globale à un projet ....

2 réponses
Avatar
Vincent
Bonjour, j'aimerais savoir si quelqu'un peut m'expliquer comment placer deux
variables globales au projet. Cette variable devrait être initialisée dans un
module pour être ensuite utilisée dans 5 form.

Voici la déclaration des deux variables :

Dim oCn As ADODB.Connection
Dim oRs As ADODB.Recordset

maintenant comment je dois m'y prendre pour les utilisers partout .... et
quelles doivent être leurs appelles ? (juste oCn = ... ou Module.Ocn = ???)

De plus, j'utilise beaucoup de requêtes SQL dans mon programme alors est-ce
que je dois fermer à chaque fois la connexion (oCn) ou pas ?

Merci !

2 réponses

Avatar
ng
Salut,

Il faut les mettre en public dans ton module :

Option explicit

Public oCn As ADODB.Connection
Public oRs As ADODB.Recordset


--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Vincent wrote:
Bonjour, j'aimerais savoir si quelqu'un peut m'expliquer comment
placer deux variables globales au projet. Cette variable devrait être
initialisée dans un module pour être ensuite utilisée dans 5 form.

Voici la déclaration des deux variables :

Dim oCn As ADODB.Connection
Dim oRs As ADODB.Recordset

maintenant comment je dois m'y prendre pour les utilisers partout
.... et quelles doivent être leurs appelles ? (juste oCn = ... ou
Module.Ocn = ???)

De plus, j'utilise beaucoup de requêtes SQL dans mon programme alors
est-ce que je dois fermer à chaque fois la connexion (oCn) ou pas ?

Merci !


Avatar
Quasimodo
It happens that Vincent formulated :
Bonjour, j'aimerais savoir si quelqu'un peut m'expliquer comment placer deux
variables globales au projet. Cette variable devrait être initialisée dans
un module pour être ensuite utilisée dans 5 form.

Voici la déclaration des deux variables :

Dim oCn As ADODB.Connection
Dim oRs As ADODB.Recordset

maintenant comment je dois m'y prendre pour les utilisers partout .... et
quelles doivent être leurs appelles ? (juste oCn = ... ou Module.Ocn = ???)

De plus, j'utilise beaucoup de requêtes SQL dans mon programme alors est-ce
que je dois fermer à chaque fois la connexion (oCn) ou pas ?

Merci !



bonjour,
Je vous conseille d'utiliser les withevents, pour pouvoir forwarder les
évènements de l'ado au forms.
exemple :

global withevents oCn As ADODB.Connection
global withevents oRs As ADODB.Recordset

Aussi, encore mieux, encapsuler la gestion de la base de données dans
une classe qui elle sera globale au projet.
exemple :

global withevents g_objDb as clsDatabase

Attention à la gestion des évenements dans un module de base qui si je
me rappel bien n'est pas autorisé.

Donc, pour résumer, le mieux, c'est de créer une classe de gestion des
accès db, de la déclarer global au projet dans un module de base (sans
withevents), ceci pour pouvoir garder une portée globale au projet et
ne pas devoir garder ouvert une forme dite principal pendant toute la
durée de vie du projet. Et pour chaque forms faisant appel à la db,
vous créez un objet de type de la classe db, avec une portée unique à
la forme et à chaque ouverture de forms, vous passez en référence
l'objet global db à celui local à la form.

Pour ce qui est de garder ouvert une connection pendant toute la durée
du programme, je ne pense pas que c'est une bonne idée.
N'ouvrez qu'au besoin votre connections. Ceci afin de libérer une
connection pour un autre user (et question aussi de licence soit de
l'os, ou du sgbdr ou même de possibilité de l'os : windows 2000
professionnel ne permet, si je me rappel bien que 5 accès coucurent).
Bon, si vous travaillez en mono poste la question ne se pose pas,
garder la ouverte.

@+Quaz

--
This is an automatic signature of MesNews.
Site : http://mesnews.no-ip.com