Probleme Incomprehensible resultats Requete SUM() sur Mysql

nerone21 Messages postés 108 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 5 mai 2011 - 28 juil. 2008 à 18:35
nerone21 Messages postés 108 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 5 mai 2011 - 28 juil. 2008 à 20:47
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

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 juil. 2008 à 19:20
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)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 juil. 2008 à 19:22
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)
0
nerone21 Messages postés 108 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 5 mai 2011
28 juil. 2008 à 19:23
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...
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
28 juil. 2008 à 19:26
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nerone21 Messages postés 108 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 5 mai 2011
28 juil. 2008 à 19:44
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!!
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
28 juil. 2008 à 19:58
le LIKE et le % peuvent aussi être en cause.





<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
0
nerone21 Messages postés 108 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 5 mai 2011
28 juil. 2008 à 20:04
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...
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
28 juil. 2008 à 20:10
"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.
0
nerone21 Messages postés 108 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 5 mai 2011
28 juil. 2008 à 20:25
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!
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
28 juil. 2008 à 20:33
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.
0
nerone21 Messages postés 108 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 5 mai 2011
28 juil. 2008 à 20:33
le sp6 de quooi?
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
28 juil. 2008 à 20:45
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.
0
nerone21 Messages postés 108 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 5 mai 2011
28 juil. 2008 à 20:47
OKI no problem...


Merci pour votre aide a tout les deux...


Si d'autrs ont des idées...
0
Rejoignez-nous