cimcim
Messages postés31Date d'inscriptionmardi 11 janvier 2005StatutMembreDernière intervention29 juillet 2010
-
21 mars 2005 à 10:36
cimcim
Messages postés31Date d'inscriptionmardi 11 janvier 2005StatutMembreDernière intervention29 juillet 2010
-
25 mars 2005 à 10:57
Bonjour a tous, j'ai un petit probleme avec des connexions ADODC
En fait, je fais une appli qui gère des contacts d'une entreprise, a partir d'une base access contenant les données (mise sur le réseau) et d'un petit programme en VB qui gère les données.
Je me connecte à la base à l'aide de connection ADO, ADODC exactement.
Mais le problème, c'est que mon prog est installé sur plusieurs machines, dont une qui n'est jamais arrêtée, et au bout d'un moment, la base de données est saturée de connexion, car les liens adodc ne se ferme jamais.
Lorsque je voudrais fermer mes connexions, je fais du :
Adodc1.RecordSource = ""
Adodc1.Recordset.Close
Adodc1.ConnectionString = ""
Mais ca ne change rien.
Si vous avez des idées, sur comment fermer ces connexions, merci de m'aider.
Merci d'avance
cimcim
Messages postés31Date d'inscriptionmardi 11 janvier 2005StatutMembreDernière intervention29 juillet 2010 22 mars 2005 à 11:26
Bon, ben c bon...
Ca marche !!
Merci beaucoup...
Et maintenant, il me ferme bien ma connexion. J'ai plus qu'à généraliser ça sur tout mon projet, car je dois bien avoir mis une vingtaine de ADODC caché partout...
Merci à mfritsch alias [mailto:M@X M@X] et à MAX68
Bye a tous
mfritsch
Messages postés46Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention 3 mai 2005 21 mars 2005 à 11:10
Bonjour,
Tu dois surement avec une variable "connection". Et bien tu la fermes (la variable bien sur ;) en faisant connection.close, ou sinon ptete Adodc1.close
cimcim
Messages postés31Date d'inscriptionmardi 11 janvier 2005StatutMembreDernière intervention29 juillet 2010 21 mars 2005 à 11:21
Merci de ta réponse, mais il n'y a pas de variable connection sur ces controles, et adodc1.close plante.
Je ne sais vraiment plus quoi faire, et je n'ai pas envie de changer tous mes controles, car mon prog commence à devenir gros, il y en a beaucoup, et je n'ai plus tellement de temps...
cimcim
Messages postés31Date d'inscriptionmardi 11 janvier 2005StatutMembreDernière intervention29 juillet 2010 21 mars 2005 à 15:06
Heu... La, je suis pas contre, mais je ne sais pas comment ca marche. Je suis sur la marche débutant.
Donc, si tu peux éclairer un peu ce que je dois déclarer pour utiliser ca...
Merci d'avance, et surtout merci de te donner la peine de m'aider.
cs_max68
Messages postés30Date d'inscriptionsamedi 13 mars 2004StatutMembreDernière intervention20 juin 2008 22 mars 2005 à 08:12
Donc vala, je te mets le code en VB 6. Au cas où tu es sous .net, pas de pb, je te le traduis:
A rajouter dans les références ou composants, je sais plus : Microsoft ADO 2.6
Dans un module:
public co as connection
public rs as recordset
Dans ta feuille:
'Initialisation de la connexion
set co = new connection
co.provider = "Microsoft.jet.OLEDB.4.0" 'pour access 2000, sinon c'est 4.1 pour 2003
co.connectionstring = "c:\mabase.mdb"
co.open
'Initialisation d'un recordset
set rs = new recordset
rs.open "table", co, adOpenDynamic 'tu peux remplacer table par une requete SQL ou existante dans la table
'Pour atteindre une valeur
var = rs.fields("table").value
'Pour rentrer une nouvelle valeur
rs.fields("table").value = var
'Fermer co et rs
rs.close
co.close
Voila, si tu veux + de recordset un recordset par table ou par requete, il faut le déclaré dans le module, pour qu'il soit accessible dans tout le projet.
Si tu as b'soin encore d'aide, je suis la. Ca me plait d'aider en VB now que je m'y connais un peu, avant c'était d'autres qui m'aidaient, c'est un peu la destinée de chacun à quiconque qui est passé par vbfrance ... lol
cimcim
Messages postés31Date d'inscriptionmardi 11 janvier 2005StatutMembreDernière intervention29 juillet 2010 22 mars 2005 à 10:52
Voila des news du front :
Lorsque j'execute, il me dit : utilisation incorrecte du mot clé New, sur la ligne set co = new connection
et si je met
set co = New ADODB.Connection
Il plante sur co.provider
Que faire ?
Le pb vient il d'une librairie ?
La librairie ADO 2.6, c'est bien le ActiveX Data Object 2.6 ?
Ou c'est une référence qu'il me faut aller chercher dans le fin fond du system32 de mon poste ?
cimcim
Messages postés31Date d'inscriptionmardi 11 janvier 2005StatutMembreDernière intervention29 juillet 2010 25 mars 2005 à 10:57
Petit message posté après la fermeture du topic, au cas ou quelqu'un ai le même problème.
Je n'ai pas tout modifié comme on me l'a proposé ci dessus, mais j'ai trouvé ce qui faisait que mes connexions restaient ouvertes...
En fait, j'utilisais des connexions adodc pour ouvrir la base dedonnées, et des textbox pour gérer les données.
Mes text box étaient configurées en mode graphique, dans les propriétés, datasource, j'avais mis adodc1.
Et c'est ça le problème.
Maintenant, je fais, dans les form_load :
Set TexteBox.DataSource = adodc1
et dans les form_unload :
Set TextBox = Nothing
Et toutes mes connexions se ferment sans problèmes.
Voila, si ça peut aider quelqu'un d'autre...