IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

[JDBC] Probleme avec un ResulSet


Sujet :

JDBC Java

  1. #1
    Membre actif
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    583
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 583
    Points : 265
    Points
    265
    Par défaut [JDBC] Probleme avec un ResulSet
    Bonjour, je suis sur un soft qui recupere les données d'une table sous une base de données MySQL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    try {
      if(_BDD != null)
       result = _BDD.Select("Host, Port, OpenRelay");
     
      while(result.next()) {
        _jcSrv.addItem(result.getString("Host"));
      }
    }
    catch(SQLException ex) {
      System.out.println("Exception: "+ ex.getMessage());
    }
    _BDD est un objet me connectant a la base, result est mon ResultSet

    Jusque la tous ce passe nikel, je récupére plusieur enregistrement dans mon resultSet.

    Un peu plus loin dans mon code je veux reutilser les données contenu dans result:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while(result.next()) {
      if(result.getString("Host") == _jcSrv.getSelectedObjects().toString()) {
        _txPort.setText( result.getString( ( "Port" ) ) );
      }
    }
    Or la je ne passe pas dans la boucle while. Comme si le resultSet était vide .
    Comment ca se fait t'il qu'il soit vide?
    Je pourrais refaire un select sur la base etc mais bon c'est pas top.

    merci de votre aide

    [ Modéré par Bulbo ]
    Ajout d'un tag dans le titre
    Les Règles du Forum

  2. #2
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Un element de reponse dans la FAQ peut-etre: http://java.developpez.com/faq/jdbc/...et#parcourirRS

    Tu es a la fin de ton ResultSet, normal que next te retourne false.

    Si ton resultset le supporte tu dois te repositionner au debut..

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  3. #3
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Ben, c'est normal, vu que tu as déjà parcouru tout ton ResultSet dans ta première boucle while pour récupérer les hosts. Les ResullSet fonctionnent un peu comme les énumérations : tu les parcours avec next() jusqu'à arriver au bout et après c'est fini.

    T'as pas le choix : faut refaire une requête, récupérer les ports en même temps que les hosts ou "rembobiner"/revenir en arrière, mais je ne crois pas que ce soit possible avec MySQL.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  4. #4
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    tssssss.....

    et la méthode beforeFirst ? personne l'a vue la méthode beforeFirst de ResultSet ??

    resultSet.beforeFirst()

    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  5. #5
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par Pill_S
    tssssss.....

    et la méthode beforeFirst ? personne l'a vue la méthode beforeFirst de ResultSet ??
    Ca marche pas à tous les coups !! Dans la JavaDoc des ResultSet, y a ça :

    SQLException - if a database access error occurs or the result set type is TYPE_FORWARD_ONLY
    Mais y a surtout ça dans la JavaDoc de la classe Connection :

    Result sets created using the returned Statement object will by default be type TYPE_FORWARD_ONLY and have a concurrency level of CONCUR_READ_ONLY.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  6. #6
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Citation Envoyé par Pill_S
    tssssss.....

    et la méthode beforeFirst ? personne l'a vue la méthode beforeFirst de ResultSet ??

    resultSet.beforeFirst()

    Et la elle dit quoi la hein ? Et un dernier pour la route you

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  7. #7
    Membre actif
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    583
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 583
    Points : 265
    Points
    265
    Par défaut
    J'ai essayer ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    try
    		{
     
    			if(_BDD != null)
    				result = _BDD.Select("Host, Port, OpenRelay");
    			else
    				_BDD = AccesBDD.GetInstance();
     
    			_jcSrv.removeAllItems();
     
    			result.beforeFirst();
     
    			while(result.next())
    			{
    				System.out.println(result.getString("Host"));
    				_jcSrv.addItem(result.getString("Host"));
    			}
    Ca ne me retourne que le premier enregistrement.

  8. #8
    Membre actif
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    583
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 583
    Points : 265
    Points
    265
    Par défaut
    Arf en faite j'ai compris ce qui se passait. Lorsque je rajoutais les objets dans ma combobox:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     while(result.next())
             {
                System.out.println(result.getString("Host"));
                _jcSrv.addItem(result.getString("Host"));
             }
    Dès le premier objet ajouter ca appellai l'evenement de cette combobox:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    _jcSrv.addActionListener(new ActionListener()
    		{
    			public void actionPerformed(ActionEvent event)
    			{
    				JcSrvChange();
    			}
    		});
    Faut donc que je debranche cette evenement et le rebranche une fois les objet ajouter a la combobox. Comment je peux faire proprement ca?

  9. #9
    Membre actif
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    583
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 583
    Points : 265
    Points
    265
    Par défaut
    En faite je crois que mon evenement est mal fait aussi. Je faudrais qu'il soit executer que lorsque l'utilisateur change la selection dans la combobox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    _jcSrv.addActionListener(new ActionListener()
          {
             public void actionPerformed(ActionEvent event)
             {
                JcSrvChange();
             }
          });

Discussions similaires

  1. [JDBC]Probleme avec des doubles cotes
    Par serialkilled dans le forum JDBC
    Réponses: 4
    Dernier message: 13/05/2006, 23h12
  2. [JDBC] Problème avec le resultat
    Par Cyborg289 dans le forum JDBC
    Réponses: 7
    Dernier message: 27/09/2005, 11h05
  3. [JDBC]Probleme avec trigger Oracle
    Par aurel89 dans le forum JDBC
    Réponses: 2
    Dernier message: 02/08/2005, 11h53
  4. [JDBC] probleme avec les transactions
    Par lthomas dans le forum JDBC
    Réponses: 2
    Dernier message: 17/06/2005, 17h10
  5. [weblogic 8.1][JDBC] Probleme avec une requete
    Par Sniper37 dans le forum Weblogic
    Réponses: 3
    Dernier message: 08/04/2005, 11h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo