FORUM Tom's Hardware » Programmation » VB / VBA / VBS » fermer connexion MySQL
 

fermer connexion MySQL

Overclocking & Tuning : fifi2191 et 92 utilisateurs inconnus
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : fermer connexion MySQL
 
Plus d'informations

Bonjour,
 
Mon script est en vb.net, il va récupérer des informations sur des centaines de machines, puis il les insert dans une BD mysql si il y a eut un changement depuis le dernier lancement.
 
Pour chaque machines je lis la dernière entrée et je la compare a ce que je veux entrer dans la BD et si c'est différent j'insert.
 
Le problème vient du fait que à chaque fois que je lis ou j'insers je me connecte et déconnecte et au bout d'environ 60 machines ça bloque car il y a trop de connexions => too many connections (http://dev.mysql.com/doc/refman/5. [...] tions.html)
 
Voici mes fonctions :  
 
*** fonction qui récupère la valeur retournée par un select :

Code :
  1. 'Chaîne de connexion
  2.             Dim paramConnect As String = "database='" & base & "';server='" & server & "';User ID='" & user & "';pwd='" & pass & "'"
  3.             'Objet connection
  4.             Dim connection As MySql.Data.MySqlClient.MySqlConnection = New MySql.Data.MySqlClient.MySqlConnection(paramConnect)
  5.            'Ouverture connection
  6.             connection.Open()
  7.             'Lien entre la base et la requête1
  8.             Dim MyAdapter1 As MySql.Data.MySqlClient.MySqlDataAdapter = New MySql.Data.MySqlClient.MySqlDataAdapter
  9.             MyAdapter1.SelectCommand = New MySql.Data.MySqlClient.MySqlCommand(requete, connection)
  10.             Dim S1 As MySql.Data.MySqlClient.MySqlDataReader
  11.             S1 = MyAdapter1.SelectCommand.ExecuteReader
  12.             S1.Read()
  13.             recupSelect = S1.GetString(0)
  14.             'Fermetures
  15.             connection.Close()
  16.             connection = Nothing
  17.             S1.Close()
  18.             S1 = Nothing


 
*** fonction qui insert dans la BD :

Code :
  1. Dim Result As New ArrayList()
  2.        'Chaîne de connexion
  3.         Dim paramConnect As String = "database='" & base & "';server='" & server & "';User ID='" & user & "';pwd='" & pass & "'"
  4.       'Objet connection
  5.         Dim connect As MySql.Data.MySqlClient.MySqlConnection = New MySql.Data.MySqlClient.MySqlConnection(paramConnect)
  6.         'normalement la requete est passée en paramètre dans la fonction
  7.         Dim requete as string = "SELECT COUNT(id_M) FROM machine"
  8.         Dim SelectCommand = New MySql.Data.MySqlClient.MySqlCommand(requete, connect)
  9.         'Ouverture connection
  10.         SelectCommand.connection = connect
  11.         Try
  12.             connect.Open()
  13.             SelectCommand.ExecuteNonQuery()
  14.             'Fermetures
  15.             connect.Close()
  16.             connect = Nothing
  17.             SelectCommand = Nothing


 
Merci à vous d'avance.


---------------
~ Google est ton ami pose lui les bonnes questions et il saura te répondre ~

G.M.G.V.S.O.
Profil : Modo matériel
Plus d'informations

Il est où le catch et le end try ? :)
 
(ça ne vient peut etre pas de là, mais ça me semble manquer :))


---------------
SPAM & WAREZ = Ban!
Ultimate Boot CD | Memtest+
Mon bar préféré à Lyon ! | Bijoux Fantaisie de Créateur !
zeb
Profil : Modérateur libre
Plus d'informations

Boub>> Bof...
L'important c'est qu'on voit bien les paires Open/Close dans l'extrait de code.
 
A moins que la saturation ne vienne des MyAdapter1 et autres SelectCommand.
 
Je reste dubitatif :/


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
G.M.G.V.S.O.
Profil : Modo matériel
Plus d'informations

zeb ==> justement, si ça ne vient pas de là, c'est que ça vient du reste et on a pas le reste c'est ça que je voullais dire :)


Message édité par boub popsy team le 11-05-2008 à 14:04:57

---------------
SPAM & WAREZ = Ban!
Ultimate Boot CD | Memtest+
Mon bar préféré à Lyon ! | Bijoux Fantaisie de Créateur !
zeb
Profil : Modérateur libre
Plus d'informations

+1


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

Connection = nothing c'est un peu bizzare...
 
Je verrai plutot un  

Code :
  1. set connection = nothing


 
Et plutot que faire le new dans la déclaration de variable, le faire à chaque ouverture avec un Set. Enfin si le .net fonctionne toujours comme ca.


---------------
S'il n'y a pas de solution c'est qu'il n'y pas de problème

Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » VB / VBA / VBS » fermer connexion MySQL
 

Annonces Google
Publicité