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 :

L'exécution d'une requéte ne renvoie rien ! Pourquoi?


Sujet :

JDBC Java

  1. #1
    Membre habitué Avatar de adil_vpb
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 326
    Points : 132
    Points
    132
    Par défaut L'exécution d'une requéte ne renvoie rien ! Pourquoi?
    Bonjour,
    je travaille avec une base de donnée MySQL, j'exécute des requéte avec JDBC.
    le probléme c'est que j'ai une requéte qui me calcule la différence entre deux instant du temps, sur MySQL ca marche mais l'orsque je l'affecte à mon ResultSet il me renvoi rien !!

    voici ma requéte (select TIMEDIFF(t1,t0) from operation), sur MySQL ca marche mais avec JDBC non,
    voic le code java :

    String req="select TIMEDIFF(t1,t0) from operation";
    try {
    Statement stm=con.createStatement();
    ResultSet rs2=stm.executeQuery(req);
    if (rs2.next())
    String timediff=rs2.getString(0);
    }catch(SQLException e) {
    out.println(e.getMessage());
    }
    je pense que le probléme est dans rs2.next() , il arrive pas à éxecuter ma requéte !

    qlq peux m'aider pour résoudre ce probléme?
    On est là pour partager notre savoir-faire !

  2. #2
    Membre éclairé Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Points : 683
    Points
    683
    Par défaut
    Et avec la requête SQL "select TIMEDIFF(t1,t0) as nombidon from operation" et le code Java "String timediff=rs2.getString('nombidon');" ?!...
    " Jag blev dömd för fildelning och allt jag fick var en sketen t-shirt. " (tankafritt.nu)
    PAS DE REPONSE PAR MESSAGE PRIVE ! Penser au bouton Résolu en bas de la discussion...

  3. #3
    Membre habitué Avatar de adil_vpb
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 326
    Points : 132
    Points
    132
    Par défaut
    non plus !
    j'ai mis :
    select TIMEDIFF(t1,t0) from operation as time ;

    String timediff=rs2.getString("time");

    mais c'est le même probléme , rien à afficher !

    y a t-il autre solution ?
    On est là pour partager notre savoir-faire !

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Points : 35
    Points
    35
    Par défaut
    Récupères-tu une exception ou la requête s'exécute-t-elle sans problème?

  5. #5
    Membre habitué Avatar de adil_vpb
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 326
    Points : 132
    Points
    132
    Par défaut
    elle s'exécute sans probléme mais y a rien à afficher !!!!
    On est là pour partager notre savoir-faire !

  6. #6
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par adil_vpb
    elle s'exécute sans probléme mais y a rien à afficher !!!!
    On pourrait voir le code comprenant la méthode d'affichage ???

    a++

  7. #7
    Membre habitué Avatar de adil_vpb
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 326
    Points : 132
    Points
    132
    Par défaut
    Avec plaisir,
    en fait voici le code sur ma classe maj.java :
    j'ai un méthode qui me renvoie le timediff :
    public String CalculTime(){
    String timediff="";
    String requete="";
    requete="select TIMEDIFF(t1,t0) from operation";
    try {
    stm=con.createStatement();
    rs2=stm.executeQuery(requete);
    if (rs2.next())
    {timediff=rs2.getString(0);}
    }catch(SQLException e) {
    err+=e.getMessage(); // j'ai déjà une méthode qui me renvoie tous les erreur (err+=...) }
    return timediff;
    }

    on fait tous marche bien, car j'ai autre méthode avec même principe et elles me renvois des bonnes résultats car dans la systaxe de ces dernieres y a toujours la selection par les noms des champs .

    et sur ma page entre.jsp :

    j'affiche :
    maj objetm=new maj();
    <%=objetm.CalculTime()%>

    je porte à votre connaissance que j'affiche des résultats avec le même principe et ca marche bien !

    Merci.
    On est là pour partager notre savoir-faire !

  8. #8
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Essayes d'utiliser les balises [code] () c'est plus lisible...

    Citation Envoyé par adil_vpb
    // j'ai déjà une méthode qui me renvoie tous les erreur
    Es-tu sûr qu'elle marche bien ? Tu as essayé un e.printStackTrace() ?

    Sinon tu as essayé de lancer ta requête directement dans une console SQL ?

    a++

  9. #9
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Points : 35
    Points
    35
    Par défaut
    As-tu regardé si tu passes bien dans le if? (avec un system.out.println par exemple )

  10. #10
    Membre habitué Avatar de adil_vpb
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 326
    Points : 132
    Points
    132
    Par défaut
    en fait j'ai rien compris !
    sur l'analyseur de requéte, ma requéte fonctionne bien et lorsque je l'éxecute avec JDBC non plus !

    est ce que c'est ca le probléme :

    select TIMEDIFF(t1,t0) as a from temps
    car la résultat de cette requéte ce n'est pas un column de la table temps, je me suis basé sur cette hypothése parce que j'ai tésté sur JDBC cette requete et il me renvoie bien la résultat, voici la requéte : "select t1 as a from temps".

    bon je me suis coincé ! est ce que le probléme est dans la maniére d'extaire la résultat du column? car j'ai mis (while (rs.nexte()) String timediff=rs.getString("a")) ...

    C'est ca le prébléme?
    Avez un qlq qui a éxecuté ce type de requéte ?

    J'attend votre réponse avec patient !
    On est là pour partager notre savoir-faire !

  11. #11
    Membre habitué Avatar de adil_vpb
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 326
    Points : 132
    Points
    132
    Par défaut
    je vous dis que lorsque j'ai ajouté ce code au récedent :

    ResultSetMetaData rsmd = rs2.getMetaData();
    timediff=rsmd.getColumnLabel(1);


    il me renvoie l'alias du column c'est "a" ! est ce que le probléme pourra être de l'objet Resultset ou bien dans rs.getString("a") car la résultat est de type Time !

    bon je pense que je vais pas continuer à vous déranger !
    On est là pour partager notre savoir-faire !

  12. #12
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par adil_vpb
    Avec plaisir,
    en fait voici le code sur ma classe maj.java :
    j'ai un méthode qui me renvoie le timediff :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public String CalculTime(){
    String timediff="";
    String requete="";
    requete="select TIMEDIFF(t1,t0) from operation";
    try {
    stm=con.createStatement();
    rs2=stm.executeQuery(requete);
    if (rs2.next())
    {timediff=rs2.getString(0);}
    }catch(SQLException e) {
    err+=e.getMessage(); // j'ai déjà une méthode qui me renvoie tous les erreur (err+=...) }
    return timediff;
    }

    Peut être peux essayer de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    timediff=rs2.getString(0);
    1. par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    timediff=rs2.getTime(0);
    2. Ou bien par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    timediff=rs2.getObject(0).toString();

Discussions similaires

  1. Réponses: 7
    Dernier message: 15/09/2016, 08h50
  2. Réponses: 1
    Dernier message: 18/04/2014, 17h32
  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