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 :

Résultats incomplets de l'exécution d'une requête


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2011
    Messages : 593
    Par défaut Résultats incomplets de l'exécution d'une requête
    Salut à tous!
    J'essaye de récupérer le résultat de l'execution d'une procédure stockée à laquelle je passe le paramètre "code". J'ai le code suivant:
    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
    19
    20
    21
    22
    23
    24
    25
    26
     
    CallableStatement proc = storedProcedureExecution.getCallableStatement();
                int parameterIndex = 1;
                //code retour
                proc.registerOutParameter( parameterIndex ++, Types.VARCHAR );
                //@code varchar(3)
                if (mainCro != null)
                {
                    proc.setString(parameterIndex ++, code);
                }
                else
                {
                    proc.setNull( parameterIndex ++, Types.VARCHAR );
                }
     
                boolean res = storedProcedureExecution.execute();
                List<String> table = new ArrayList<String>();
     
                ResultSet resultSet = proc.getResultSet();
     
                int index = 1;
                if (resultSet.next())
                {
                    table.add( resultSet.getString( index ) );
                    index ++;
                }
    Le problème c'est que table ne contient qu'un seul résultat, alors qu'il devrait y en avoir plus. Je ne comprends pas d'où vient cette erreur.
    Merci d'avance pour toute aide!

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 540
    Par défaut
    Il n'y a pas de boucle dans l'exploitation de ton Resultset :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (resultSet.next())
                {
                    table.add( resultSet.getString( index ) );
                    index ++;
                }
    Il vaut mieux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while (resultSet.next())//se déplace sur la ligne suivante et renvoie faux, si le curseur se trouve après la dernière ligne
                {
                    table.add( resultSet.getString( index ) );
                    index ++;//en crémentant index, lorsque tu liras la ligne suivante, tu liras aussi la colonne suivante. La conséquence est que tu lies ton résultset en diagonnale. Si tu as plus de lignes que de colonnes (ce qui est souvent le cas, ça va planter)
                }

  3. #3
    Membre éclairé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2011
    Messages : 593
    Par défaut
    Mince, j'avais pas fait attention
    Merci beaucoup en tout cas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [IP-2007] Récupérer le résultat de l'exécution d'une requête sous Infopath 2007
    Par imothepe_33 dans le forum InfoPath
    Réponses: 1
    Dernier message: 05/07/2011, 14h17
  2. [C#][SQLServer]Résultat d'exécution d'une requête sur SQLServer
    Par Chakalaka dans le forum Accès aux données
    Réponses: 1
    Dernier message: 14/04/2010, 12h32
  3. Réponses: 1
    Dernier message: 05/12/2005, 23h24
  4. Arrêt de l'exécution d'une requête MySQL dans DELPHI.
    Par joelmarc dans le forum Bases de données
    Réponses: 9
    Dernier message: 11/10/2004, 16h11
  5. Affichage du temps d'exécution d'une requête
    Par milka dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 22/03/2004, 17h48

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