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

Oracle Discussion :

Test efficacité requête


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 27
    Points : 20
    Points
    20
    Par défaut Test efficacité requête
    Bonjour,
    je travaille sur une classe qui gère la récupération de données à partir d'une BDD oracle.
    J’exécute une requête puis j'essaie de voir si elle a donné un résultat
    Code Java : 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
    //* Initialisation des variables resultatsSet */
    ResultSet resultatSet1;
    ResultSet resultatSet2;
     
    /* Initialisation des statements de connection */
    java.sql.Statement statement1 = connection.createStatement();
    java.sql.Statement statement2 = connection.createStatement();
     
    /* Execution des requetes */
    resultatSet1=statement1.executeQuery(requete1);
    resultatSet2=statement2.executeQuery(requete2);
     
    System.out.println("Test1");
     
    /* Test de l'efficacité de la requete 1 */
    if(!resultatSet1.next()){
        	System.out.println("La requete n'a pas aboutie...");
       	System.exit(0);
    }
     
    System.out.println("Test2");
     
    while (resultatSet1.next()) {
                           ...
                           System.out.println("Test3");
    }
     
    System.out.println("Test4");
     
    /* Test de l'efficacité de la requete 2 */
    if(!resultatSet2.next()){
        	System.out.println("La requete n'a pas aboutie...");
       	System.exit(0);
    }
     
    System.out.println("Test5");
     
    while (resultatSet2.next()) {
                           ...
                           System.out.println("Test6");
    }
    System.out.println("Test7");

    Lorsque j'exécute cette partie de code, avec deux requêtes correctes et testées, voici le résultat :
    Test1
    Test2
    Test3
    Test4
    Test5
    Test7
    Qu'ai-je fais de mal?

    Si vous avez une autre manière de tester si la requête renvoie une résultat ou pas...


    Si je mets en commentaires le test de la requête 2, tout fonctionne normalement.

    Que je mette en commentaires ou pas le test de la requête 1, tout fonctionne normalement...

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 127
    Points : 208
    Points
    208
    Par défaut
    Bonjour,

    Ce message n'a pas eu de réponse depuis presque 1 mois, peut-être a tu trouvé tout seul ?

    Sinon, voici m réponse :

    L'appel à Resultset.next() positionne sur la prochaine ligne, donc si ta requête (que ce soit la 1 ou la 2) ne comporte qu'un record, le deuxième appel à Resultset.next() retournera faux.
    Donc potentiellement les messages "Test3" et "Test6" ne seront envoyés que si respectivement la requete 1 et la requete 2 renvoient plus d'une ligne.
    Le simple fait que Resultset.next() retourne "true" veut dire que la requête a marché et qu'elle a renvoyé au moins un record.

    Après, si tu veux donner le nombre de lignes, tu peux toujours compter avec ta boucle, mais ne pas oublier que le premier test a déjà avancé d'une ligne.

    Cordialement

Discussions similaires

  1. teste une requête sur phpMyAdmin
    Par Invité dans le forum Zend_Db
    Réponses: 3
    Dernier message: 13/07/2011, 10h47
  2. [AJAX] Test retour requête => bloquage
    Par troumad dans le forum AJAX
    Réponses: 17
    Dernier message: 09/09/2009, 19h54
  3. Test résultat requête
    Par manu971 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 21/11/2007, 18h39
  4. Test sur une requète
    Par Thibaut_Dupont dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 27/07/2006, 14h21
  5. test d'une requête avec paramètre
    Par hervé14670 dans le forum Access
    Réponses: 1
    Dernier message: 12/01/2006, 23h45

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