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 :

erreur 17011 "ensemble de resultat epuisés"


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 80
    Points : 40
    Points
    40
    Par défaut erreur 17011 "ensemble de resultat epuisés"
    Bonjour a tous...

    Voila le loup:
    Je tente une connexion a Oracle pour interroger une table, remonter les données et les afficher en console. (le truc le plus couyon du monde!!!)

    Voila l'erreur:

    Connexion OK
    Statement OK
    RATE !!!!!
    ERREUR N°: 17011
    CAUSE: null
    MESSAGE ORA: Ensemble de résultats épuisé
    Résultats:
    |null | null | null | null | null |
    ***** Fin Du Programme *****

    Or, quand je donne l'ordre sql directement dans Oracle, ca fonctionne tres bien et me remonte la ligne voulue.

    J'ai egalement fait ma connexion et mon statement ans 2 blocs "try/catch" pour verifier qu'ils s'executent correctement.

    La syntaxe de l'ordre sQL est bonne (verifiée plusieurs fois)

    Mon gros doute est au nioveau de la lecture de la table et de l'affectation des données dans le tableau, ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try {
    			res1.next();
    			donneePers[0] = res1.getString("nompers");
    			donneePers[1] = res1.getString("prepers");
    			donneePers[2] = res1.getString("datnaiss");
    			donneePers[3] = res1.getString("teldom");
    			donneePers[4] = res1.getString("telport");
    			res1.close();
    			connexion.close();
    La je suis a court de pistes et je ne comprends pas ou est le pepin...

    Si quelqu'un peut me depanner et m'apprendre de nouvelles facons de faire..

    Merci d'avance a tous.

    Voila mon code:

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    public static void main(String[] args) throws SQLException{
    		// TODO Auto-generated method stub
    		// === Decarations ===
    		String tabOracle [] = new String [5];
    		String nom = null;
    		String ordreSelect = "select * from pers where nompers = '"+nom+"'";
    		String driv = null;
    		String conn = null;
    		String messErCon = null;
    		String messErSte = null;
    		String mesConOK  = null;
    		String mesSteOK = null;
    		String messfin = null;
    		String messErdon = null;
    		Connection connexion = null;
    		String donneePers []= new String [10];
     
    		// === Prise du nom ===
    		System.out.println("un nom: ");
    		nom = Lire.Chaine();
     
    		//=== Recuperation des messages ===
    		try {
    			LireIni recDonnees = new LireIni();
    			recDonnees.lire("test.ini");
    			tabOracle[0] = recDonnees.getProperty("driver");
    			//System.out.println(tabOracle[0]);
    			tabOracle[1] = recDonnees.getProperty("connection");
    			//System.out.println(tabOracle[1]);
    			tabOracle[2] = recDonnees.getProperty("erreur1");
    			tabOracle[3] = recDonnees.getProperty("erreur2");
    			tabOracle[4] = recDonnees.getProperty("finProg");
    			mesConOK = recDonnees.getProperty("conOK");
    			mesSteOK = recDonnees.getProperty("steOK");
    			messErdon = recDonnees.getProperty("erreur3");
    		} catch (Exception e) {
    			// TODO: handle exception
    			System.out.println("!!!!! Erreur de recuperation des Messages !!!!!");
    			System.out.println(e.getMessage());
    			System.out.println(e.getCause());
    		}
    		//=== affectation aux variables  ===
    		driv = tabOracle[0];
    		// System.out.println(driv);
    		conn = tabOracle[1];
    		messErCon = tabOracle[2];
    		messErSte = tabOracle[3];
    		messfin = tabOracle[4];
     
    		// === Connexion ===
    		try {
    			Class.forName(driv);
    			connexion = DriverManager.getConnection(conn);
    			System.out.println(mesConOK);
     
    		} catch (Exception e) {
    			// TODO: handle exception
    			System.out.println(messErCon);
    			System.out.println(e.getCause());
    			System.out.println(e.getStackTrace());
    			System.out.println(e.getLocalizedMessage());
    		}
     
    		// === Statement ===
    		ResultSet res1 = null;
    		try {
     
    			Statement stmt1 = connexion.createStatement();
    			res1 = stmt1.executeQuery(ordreSelect);
    			System.out.println(mesSteOK);
     
     
    		} catch (SQLException i) {
    			// TODO: handle exception
    			System.out.println(messErSte);
    			System.out.println(i.getErrorCode());
    			System.out.println(i.getCause());
    		}
    		try {
    			res1.next();
    			donneePers[0] = res1.getString("nompers");
    			donneePers[1] = res1.getString("prepers");
    			donneePers[2] = res1.getString("datnaiss");
    			donneePers[3] = res1.getString("teldom");
    			donneePers[4] = res1.getString("telport");
    			res1.close();
    			connexion.close();
    		} catch (SQLException e) {
    			// TODO: handle exception
    			System.out.println("RATE !!!!!");
    			System.out.println("ERREUR N°: "+e.getErrorCode());
    			System.out.println("CAUSE: "+e.getCause());
    			System.out.println("MESSAGE ORA: "+e.getMessage());
    		}
     
    		// === Affichage des Donnees ===
    		System.out.println("Résultats: ");
    		System.out.println("|"+donneePers[0]+" | "+donneePers[1]+" | "+donneePers[2]+" | "+donneePers[3]+" | "+donneePers[4]+" |");
     
    		// === Fin ===
    		System.out.println(messfin);
     
     
    	}

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Bonjour et bienvenue sur les forums de Developpez.com.

    Es-tu sûr que tu as bien un résultat en exécutant ton code ?

    Pour en être certain, tu peux remplacer la ligne
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (res1.next()) {
        System.out.println("Au moins un résultat trouvé");
    } else {
        System.out.println("Aucun résultat");
    }
    Bon développement
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 80
    Points : 40
    Points
    40
    Par défaut
    merci nesmontou!
    Tu as raison, ca ne me remonte rien!!!...

    Alors d'où l'erreur provient!!! ...Je sais deja qu'elle vient d'entre la chaise et l'ecran, mais a ton avis, qu'est-ce que j'ai fait qui ne fonctionne pas?

    Merci d'avance et merci encore pour le tuyau "code"...

  4. #4
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Bonjour,

    S'il n'y a aucun résultat alors que tu as joué la requête en base, c'est qu'il doit y avoir un écart.

    Dans ce cas, je pense que tu devrais afficher la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(ordreSelect);
    La copie / coller dans ton éditeur SQL et l'exécuter.

    Tu verras alors si elle est correcte ou non.

    Petite remarque, pour passer des paramètres, la concaténation n'est pas la meilleure des solutions (il peut y avoir de l'injection SQL par exemple).

    Tu peux utiliser les PreparedStatement. La FAQ contient une page dessus.
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 80
    Points : 40
    Points
    40
    Par défaut nouvel essai
    je vais essayer tout ca, je vous tiens au courant

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 80
    Points : 40
    Points
    40
    Par défaut trompette!!!
    Bon alors, si il y a une palme de la trompette, elle est bien pour moi!!!!!...mdr!!

    Mon code etait bon, mais grosse moule cuite que je suis, je declare ma variable "ordreSelect" qui comme son nom l'indique, recueille mon select, et je recupere la condition "where" seulement apres!!!...
    Donc forcement, au moment du passage du "select", la condition est egale a "null" et donc ne peut absolument rien remonter!!!...lol!!

    Mais quel trompette je suis !!!..mdr...
    Ce pepin ne m'etait pas, mais alors pas du tout venu a l'esprit!!!
    Comme quoi le probleme est tres souvent situé entre la chaise et l'ecran!!

    Toutefois il reste un souci: Le code fonctionne et m'affiche bien les données en console, mais le run passe quand meme dans le "catch" et remonte toujours l'erreur 17011...
    Je crois qu'il ne prends pas bien en compte l'arret de la boucle...

    A voir..

    Merci encore et tres certainement a bientot!!!...

    dev RC0.

Discussions similaires

  1. Procédure stockée et ensemble de resultat
    Par rxseac dans le forum DB2
    Réponses: 6
    Dernier message: 06/06/2007, 09h14
  2. [débutant] erreur "indice de liste hors limites(1)"
    Par lidouka dans le forum Langage
    Réponses: 2
    Dernier message: 13/12/2005, 14h31

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