PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Probleme avec une requete MySQL
Probleme avec une requete MySQL
Iniciado por Guillaume.Phabulo, jun., 08 2005 9:15 PM - 5 respostas
Publicado em junho, 08 2005 - 9:15 PM
Voila mon code
SQLConnexion est un booléen
SQLConnexion = SQLConnecte("X.X.X","....","......",".......","MYSQL","")

SI SQLConnexion <> 0 ALORS
select est une Sources de Données
verif_login est un booléen
verif_login = SQLExec("SELECT * FROM usr WHERE cde="+GL_login+"OR cde1="+GL_login+"AND pass="+GL_MotPasse+"","verif_login")

SI verif_login = Vrai ALORS
Ouvre(Menu)
SINON
Erreur("Erreur : " + HErreur ())
//erreur("votre login/Mot de passe est erroné")
FIN
SINON Erreur("connexion SQL echoué")

Biensur dans le SQLConnecte il y'a les donnée qui sont remplacées par les X et points mais se code marche c'est apres sur le SQLExec que sa ne marche pas et je sais pas pourquoi sa ne marche pas alors si quelqu'un pouvais me dire se qui ne va pas sa m'aiderai. A oui le GL_Login et GL_MotPasse sont des chaines recuperés dnas un champs dnas la meme fenetre.

Merci d'avance
Guillaume Jean
Publicado em junho, 08 2005 - 11:48 PM
Guillaume Jean a écrit :
Voila mon code
SQLConnexion est un booléen
SQLConnexion = SQLConnecte("X.X.X","....","......",".......","MYSQL","")

SI SQLConnexion <> 0 ALORS
select est une Sources de Données
verif_login est un booléen
verif_login = SQLExec("SELECT * FROM usr WHERE cde="+GL_login+"OR cde1="+GL_login+"AND pass="+GL_MotPasse+"","verif_login")

SI verif_login = Vrai ALORS
Ouvre(Menu)
SINON
Erreur("Erreur : " + HErreur ())
//erreur("votre login/Mot de passe est erroné")
FIN
SINON Erreur("connexion SQL echoué")

Biensur dans le SQLConnecte il y'a les donnée qui sont remplacées par les X et points mais se code marche c'est apres sur le SQLExec que sa ne marche pas et je sais pas pourquoi sa ne marche pas alors si quelqu'un pouvais me dire se qui ne va pas sa m'aiderai. A oui le GL_Login et GL_MotPasse sont des chaines recuperés dnas un champs dnas la meme fenetre.

Merci d'avance
Guillaume Jean


Bonjour,

Je te propose de mettre la condiion OU entre parenthèse. J'ai remarqué
cette semaine le problème et cela s'est réglé de la sorte
"SELECT * FROM usr WHERE (cde="+GL_login+"OR cde1="+GL_login+")AND
pass="+GL_MotPasse+""

ou sinon
"SELECT * FROM usr WHERE cde in (GL_login,GL_login) AND
pass="+GL_MotPasse+""

Par le biais d'un tableau de valeur

Bon courage

Jérôme SAADA
Publicado em junho, 09 2005 - 11:07 AM
Bonjour

il manque l'encadrement de tes variables par des ' voir ci dessous ('
")

WHERE cde='"+GL_login+"'


Guillaume Jean a exposé le 08/06/2005 :
Voila mon code
SQLConnexion est un booléen
SQLConnexion = SQLConnecte("X.X.X","....","......",".......","MYSQL","")

SI SQLConnexion <> 0 ALORS
select est une Sources de Données
verif_login est un booléen
verif_login = SQLExec("SELECT * FROM usr WHERE cde="+GL_login+"OR
cde1="+GL_login+"AND pass="+GL_MotPasse+"","verif_login")

SI verif_login = Vrai ALORS
Ouvre(Menu)
SINON
Erreur("Erreur : " + HErreur ())
//erreur("votre login/Mot de passe est erroné")
FIN
SINON Erreur("connexion SQL echoué")

Biensur dans le SQLConnecte il y'a les donnée qui sont remplacées par les X
et points mais se code marche c'est apres sur le SQLExec que sa ne marche pas
et je sais pas pourquoi sa ne marche pas alors si quelqu'un pouvais me dire
se qui ne va pas sa m'aiderai. A oui le GL_Login et GL_MotPasse sont des
chaines recuperés dnas un champs dnas la meme fenetre.

Merci d'avance
Guillaume Jean


--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Publicado em junho, 09 2005 - 11:59 AM
Merci bcp

C'etait bien l'enadrement des variable qu'il manquait
Publicado em junho, 09 2005 - 1:12 PM
Je vois d'autres problèmes dans le code:
SQLConnecte ne renvoie pas un booléen, mais un entier ( numéro de la connection ).
Verif_login, qui contient le résultat de la requête, ne te permet pas de savoir si le login est correct, mais uniquement si la requête c'est bien exécuté. Avec un mauvais login/mot de passe, la requête s'exécute bien, SQLExec renvoie Vrai, mais le login est incorrect.

Tu devrais plutôt faire quelquechose comme ceci:
si pas SQLExec("SELECT cde FROM usr WHERE cde="+GL_login+"OR cde1="+GL_login+"AND pass="+GL_MotPasse+"","verif_login") ALORS
SQLInfogene("verif_login")
Erreur("Erreur lors de la vérification du mot de passe : " + SQL.meserreur())
SQLDeconnecte()
FIN
SQLAvance("verif_login")
SI SQLLitCol("verif_login",1) = "" ALORS
Erreur("Mot de passe incorrect.")
SQLFerme("verif_login")
sinon
SQLFerme("verif_login")
ouvre(menu)
FIN
Publicado em junho, 09 2005 - 2:15 PM
Merci pour cette derniere precision sa marche a merveille maintenant