Probleme Incomprehensible resultats Requete SUM() sur Mysql
nerone21
Messages postés108Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention 5 mai 2011
-
28 juil. 2008 à 18:35
nerone21
Messages postés108Date d'inscriptionvendredi 4 mars 2005StatutMembreDerniè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.
A voir également:
Probleme Incomprehensible resultats Requete SUM() sur Mysql
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
nerone21
Messages postés108Date d'inscriptionvendredi 4 mars 2005StatutMembreDerniè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...
nerone21
Messages postés108Date d'inscriptionvendredi 4 mars 2005StatutMembreDerniè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!