Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Un bug étrange [ Divers / Général ] (baratribord)

samedi 17 mai 2008 à 22:46:43 | Un bug étrange

baratribord

Bonsoir,

Je récupère deux strings d'une boite de dialogue, un pseudo et un Mdp, pour vérifier l'authentification à une base de données.
Ma requette SQL s'execute normalement, je localise bien les données souhaitées.

Jusque là pas de probleme sauf qu'après j'affiche l'enregistrement complet dans une table et celui-çi est vide....

Lorsque je debogue et que je m'arrete sur la ligne de code en vert resultat.next() est égal à true, je fais un pas et j'arrive dans la ligne orange. ??
En cours de route mon resultat a changé !

Si je mets la condition en commentaire cela fonctionne bien pour l'affichage de mes infos...

Etrange non ? Je vois pas en quoi un simple test vient perturber le bon fonctionnement du programme...

Voiçi les quelques lignes de code :

Statement instruction = Dia.Fen.connexion.createStatement();
                        sql = "SELECT * FROM data where pseudo = \"" + pseudo + "\" and mdp = \"" + mdp + "\"" ;
           
                        ResultSet resultat = instruction.executeQuery(sql);
           
                        if (resultat.next()==true)
                        {
                            Dia.setVisible(false) ;
                            JOptionPane.showMessageDialog(null, "Identification réussi\n Bienvenue "+ resultat.getString("prenom")+" "+resultat.getString("nom") , "Data connect", JOptionPane.INFORMATION_MESSAGE);
                        }
                        else
                        {
                            JOptionPane.showMessageDialog(null, "Echec d'autentification" , "Data connect", JOptionPane.ERROR_MESSAGE);   
                        }
                         ResultSetTableModel tableModel = new ResultSetTableModel();
                         tableModel.updateModel(resultat);
                         Dia.Fen.table = new JTable(tableModel);
                         if (Dia.Fen.JSP!= null) Dia.Fen.getContentPane().remove(Dia.Fen.JSP);
                         Dia.Fen.JSP = new JScrollPane(Dia.Fen.table);
                         Dia.Fen.getContentPane().add(Dia.Fen.JSP,BorderLayout.CENTER);
                         Dia.Fen.validate();


dimanche 18 mai 2008 à 10:51:54 | Re : Un bug étrange

baratribord

Arf ! J'ai cherché mais je ne comprends pas.

Est-ce normal qu'un simple test if (resultat.next()==true) modifie la valeur de mon ResultSet

Je suis revenu en arrière sur le code mais pas moyen d'éviter le phénomène.
Le plus étrange c'est que je n'obtiens pas les mêmes résultats si je debogue ou non.
Pour m'en sortir j'execute deux fois ma query en rouge ?

Avez-vous une idée ?

                        ResultSet resultat = instruction.executeQuery(sql);
           
                        if (resultat.next()==true)
                        {
                            Dia.setVisible(false) ;
                            JOptionPane.showMessageDialog(null, "Identification réussi\n Bienvenue "+ resultat.getString("prenom")+" "+resultat.getString("nom") , "Data connect", JOptionPane.INFORMATION_MESSAGE);
                        }
                        else
                        {
                           JOptionPane.showMessageDialog(null, "Echec d'autentification" , "Data connect", JOptionPane.ERROR_MESSAGE);   
                        }

                         resultat = instruction.executeQuery(sql);
                         ResultSetTableModel tableModel = new ResultSetTableModel();
                         tableModel.updateModel(resultat);
                         Dia.Fen.table = new JTable(tableModel);
                         if (Dia.Fen.JSP!= null) Dia.Fen.getContentPane().remove(Dia.Fen.JSP);
                         Dia.Fen.JSP = new JScrollPane(Dia.Fen.table);
                         Dia.Fen.getContentPane().add(Dia.Fen.JSP,BorderLayout.CENTER);
                         Dia.Fen.validate();


dimanche 18 mai 2008 à 19:48:55 | Re : Un bug étrange

vecchio56

Administrateur CodeS-SourceS
Le fait d'appeler la méthode next() modifie la position du curseur dans ton ResultSet. Tu n'aura donc pas la même comportement si tu appelles une ou deux fois cette méthode.

_____________________________________
Un éditeur de ressources gratuit pour Windows


dimanche 18 mai 2008 à 20:31:49 | Re : Un bug étrange

baratribord

Que je comprennes bien. Est-ce à dire que lorsque je m'arrete sur ma condition : if (resultat.next()==true) que je visualise la valeur en debogant, le fait ensuite de l'executer me renvoie false parce que je n'ai effectivement qu'un seul enregistrement ?

dimanche 18 mai 2008 à 20:40:22 | Re : Un bug étrange

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
Si ton débogueur te permet d'appeler des méthodes (ce qui est sans doute le cas, sinon comment connaitrais tu la valeur?), oui.
Ca me semble logique. Par exemple, si dans un débogueur tu visualises la valeur de i++, ca va changer la valeur de i.

_____________________________________
Un éditeur de ressources gratuit pour Windows


dimanche 18 mai 2008 à 21:20:46 | Re : Un bug étrange

baratribord

Hé ben ! Merci, je reprends la programmation (j'ai arrêté en 98 avec Borland C++) et je me suis fait piéger par le progrès...



Cette discussion est classé dans : pseudo, resultat, jsp, joptionpane, fen


Répondre à ce message

Sujets en rapport avec ce message

Integrer un resultat de java sur une page JSP(servelts) [ par Syruis ] Bonjour jai toujour le même problême je veut faire une servlet ou le code java reste dans un .java c tres simple et ca evite de rentrer dans le code m JAVA BASE DE DONNEE [ par larcenmen ] BONSOIR TOUS LE MONDE J'AIMERAIS FAIRE UNE GESTION DES ERREURS ON VERIFIANT L'EXISTANCE DES DONNEE DANS LA BASE DO DONNEE PAR EXEMPLE LORSQUE  JE CLIQ Integrer un resultat de java sur une page JSP [ par Syruis ] Bonjour, C'est pour savoir comment je peut recuperer un resultat dun programme java dans une page JSP. Si vous avez la response merci bien www.criseno [JOptionPane.showMessageDialog] CATCH {Exception [ par bidani ] salut,je veux afficher le resultat d'une exception que je recupere avec catch (Exception e) { e.printStackTrace(); }dans un JOp variable de session(JSP) [ par nabilblk ] je travail sur un site en JSP. et je veux utiliser les variable de session [au lieu de les porter avec methode get ou post "request.getparameter("nom" internationalisation [ par kouadjalain ] Bonjour,je suis newbie en jsp. je dois faire une application la dessus.Voici une partie de mon code <% I18nManager.setLangage((String)request.getPara Unparseable date [ par mohaaaaa ] j'utilise une methode pour valider une date.Cette methode, je l'ai trouve sur de la doc mais je peux entrer n'importe kelle date, je recois le message imprimrer un tableau dans une page JSP [ par youess81 ] slut je travail sur un projet intranet et j aurai besoin d'imprimer des tableaus qui seront géneré avec une page jsp est ce qu il y a une methode pour Mess Erreur Aff 2 fois [ par kaliel ] Dans une fonction simple, j'ai un 'if (...) .......' et si cette condition n'est pas remplie, j'affiche un JOptionPane :JOptionPane.showMessageDialog( mess error aff 2 fois [ par kaliel ] Dans une fonction simple, j'ai un 'if (...) .......' et si cette condition n'est pas remplie, j'affiche un JOptionPane :JOptionPane.showMessageDialog(


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 2,434 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.