Probleme Incomprehensible resultats Requete SUM() sur Mysql

Signaler
Messages postés
108
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
5 mai 2011
-
Messages postés
108
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
5 mai 2011
-
Bonjour les serials Codeurs,

Tout d'abord je code en VB.net 2008, J'utilise la reference "Adodb" version 7.0 pour me connecter a ma base mysql...

Voilà mon code utilisé :

      Dim rstest As ADODB.Recordset = MySQL_RequeteSelect(CreatModifUser.ConnexionSQL, "SELECT SUM(NbreIP) as somme FROM `adressesip` WHERE `IP` LIKE ('192.168.0.%') ")        If Not (rstest.BOF False And rstest.EOF False) Then
            MsgBox("Aucune ip, C'est de la m***")
            Exit Sub
        End If
        rstest.MoveFirst()
        MsgBox("Nombre d'ip 192.168.0.% trouvées : " & rstest.Fields("somme").value.tostring)
        rstest.close()

Alors voilà mon problème : j'ai testé mon code sur 4 PC (3 Windows XP PRO sp3 et 1 Vista sp1) et les 4 PC communique avec la base de données
Voilà le mystére :
Sur un seul des PC en windows XP, la requete me renvoi un resultat alors que tout les autres me reponde: "Aucune IP, C'est de la m***"

Je ne comprend absolument rien! J'ai essayé la même requete avec un mysql_Query, et de tout les PC j'ai le resultat!

ET CA M'ENERVE VRAIMENT FORT!!!

Alors SVP aidez-moi, paskeu je péte un cable!

Merci.

13 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
Salut
Commençons par le début : repect des normes SQL :
   "SELECT SUM(NbreIP) as somme FROM `adressesip` WHERE `IP` LIKE ('192.168.0.%') "
- Les noms des tables ou des champs ne doivent pas être encadrées par des ', éventuellement des crochets [ et ] si leurs noms comportent des caractères spéciaux
- Abondance de parenthèses ne servent à rien
- Dans les fiches de la DB, que renferme le champ "NbreIP" ?
  Existe t-il ?
  Ca me parait bizarre
Si tu dois compter le nombre de fiches correspondant à ta recherche, COUNT serait mieux approprié.

Essaye ceci, après correction :
   "SELECT COUNT(IP) as somme FROM adressesip WHERE IP LIKE '192.168.0.%'"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
De plus, ce test ne veut pas dire qu'il n'y a rien dans ton RecordSet :
   If Not (rstest.BOF False And rstest.EOF False) Then
Il veut simplement dire que tu serais positionné sur un enregistrement qui ne serait ni le premier, ni le dernier.
Bizarre
Utilise simplement
   If rstest.RecordCount > 0 Then

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
108
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
5 mai 2011

Re,

Merci de ta reponse rapide,

Alors NbreIP est un smallint et j'ai essayé aussi de mettre "as somme" aprés le sum()... et c'est pareil.

A suivre...
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Salut,
Ceriainement que c' est une question de synthaxe.
je te suggères de procèder par élimination, pour cerner la partie d' ou
pourrait provenir l' erreur.
Essaies d' abord
"SELECT SUM(NbreIP) as Somme FROM 'adressesip'"
puis
"SELECT SUM(NbreIP) as Somme FROM adressesip"
puis
"SELECT SUM(NbreIP) as Somm FROM 'adressesip'"
puis
"SELECT SUM(NbreIP) as Somm FROM adressesip"


si ça passe avec l' une, tu passes à la clause Where
avec différentes écritures.






 





<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
108
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
5 mai 2011

Me revoilà...

Aprés plusieurs transformations voilà ce qu'est le code :

      Dim rstest As ADODB.Recordset = MySQL_RequeteSelect(CreatModifUser.ConnexionSQL, "SELECT SUM(NbreIP) as somme FROM adressesip WHERE IP LIKE ('192.168.0.%') ")
        If Rstest.RecordCount <= 0 Then
            MsgBox("Aucune ip, C'est de la m***")
            Exit Sub
        End If
        rstest.MoveFirst()
        MsgBox("Nombre d'ip 192.168.0.% trouvées : " & rstest.Fields("somme").value.tostring)
        rstest.close()

Et bien absolument rien n'as changé, je sais plus quoi faire...

HEEEEEEEELP!!
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
le LIKE et le % peuvent aussi être en cause.





<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
108
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
5 mai 2011

Moi je pense pas, je pense qu'il n'y a que le SUM() en cause, Car j'ai même essayer le COUNT() il ne renvoi rien!!! Et pour le LIKE et le %, je l'utilise ailleurs dans le programme, ca passe...

Et je vous dit... je me met en mode Debug je recupere la requete, je la met dans MysqlQuery et il me donne le bon resultat!

SVP! Je pete un cable...
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
"Moi je pense pas"
il ne suffit pas de penser, il faut tester, comme suggèré, pour écarter tout doute.

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
108
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
5 mai 2011

C'est bon testé, j'ai retiré "%" et remplacer le "LIKE" par un  "="

Même resultat: 1 PC ok, les 3 autres Non.

comprend rien!
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Maintenant on peut dire que l' erreur est incompréhensible !
Désolé de ne pouvoir t' aider d' avantage.

Toutefois, penses à télécharger le sp6.

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
108
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
5 mai 2011

le sp6 de quooi?
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
non non ça n' a rien à voir.
j' ai confondu Pack xp avec Pack Visual.

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
108
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
5 mai 2011

OKI no problem...


Merci pour votre aide a tout les deux...


Si d'autrs ont des idées...