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

API standards et tierces Java Discussion :

prob récupérer nb jours entre 2 dates


Sujet :

API standards et tierces Java

  1. #1
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 44
    Points
    44
    Par défaut prob récupérer nb jours entre 2 dates
    voila j'aimerais pouvoir récupérer le nb de jours entre 2 dates. J'ai écrit une requete sql qui marche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DATEDIFF(abt_dateFin,abt_dateDebut) FROM t_abonnement WHERE abt_id ="+abt.getAbt_id();
    le problème vient du +abt.getAbt_id() qui me retourne -1

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2004
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2004
    Messages : 138
    Points : 125
    Points
    125
    Par défaut
    Affiche les valeurs de ton abt_id de l'objet abt au différent stade de ton exécution pour contrôler s'il n'est pas modifié ou s'il est bien setter une fois...

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Mai 2003
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 3 240
    Points : 11 101
    Points
    11 101
    Par défaut
    Excuse-moi, mais quel est le rapport entre le titre de ton sujet et ton problème ?

    Si tu nous montrais ton code java, on pourra un peu mieux t'aider.
    C'est tout de même pas par hasard que abt.getAbt_id() vaut -1.
    Et où donnes tu une valeur à cet id ?
    Vincent Brabant

    Ne pas me contacter par MP ni par mail pour des questions techniques. Ma liste d'amis restera vide.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  4. #4
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 44
    Points
    44
    Par défaut
    voila ma fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      public int getNbJours(Abonnement abt) {
        String requete =
            "SELECT DATEDIFF(abt_dateFin,abt_dateDebut) FROM t_abonnement WHERE abt_id =" +
            abt.getAbt_id();
     
        int nbJours = dbc.executeSQL(requete);
     
        return nbJours;
      }

  5. #5
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 44
    Points
    44
    Par défaut
    et après je fais ca pour récupérer le nombre de jours mais ca marche pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      void jButtonisPaye_actionPerformed(ActionEvent e) {
        if (jTableAbonnements.getSelectedRow() != -1) {
          int id = ( (Integer) jTableAbonnements.getValueAt(jTableAbonnements.
              getSelectedRow(), 0)).intValue();
     
          abonnement = new Abonnement(id);
         int nbJours = requetesAbonnement.getNbJours(abonnement);
          System.out.println(nbJours);
        }

  6. #6
    NGY
    NGY est déconnecté
    Membre habitué
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 164
    Points
    164
    Par défaut
    Hum ... Apparemment, tu n'as pas compris comment on utiliser JDBC.

    Je te conseille de lire un peu sur le sujet avant de poursuivre :
    FAQ developpez
    Tutoriels developpez

  7. #7
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 44
    Points
    44
    Par défaut
    qu'est-ce qu'il a de faux ?

  8. #8
    NGY
    NGY est déconnecté
    Membre habitué
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 164
    Points
    164
    Par défaut
    On ne peut pas savoir !
    Tu dis que :
    ca marche pas
    mais sans donner plus d'explications !

    C'est quoi le problème exactement ?

    Et que fait ton dbc.executeSQL() ?
    Si on n'a pas le code, on ne peut pas savoir ce qui est faux.

    Sinon, comme il a été dit plus haut, si ton abt.getAbt_id() retourne -1, c'est que tu lui as affecté la valeur -1 quelque part.

    PS : oublie ma remarque précédente, j'avais lu un peu trop vite.

  9. #9
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 44
    Points
    44
    Par défaut
    j'ai mis le code important... pour initialiser... pour donner une valeur à mon id j'ai fait ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int id = ( (Integer) jTableAbonnements.getValueAt(jTableAbonnements.
              getSelectedRow(), 0)).intValue();

  10. #10
    NGY
    NGY est déconnecté
    Membre habitué
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 164
    Points
    164
    Par défaut
    Non, tu n'as pas mis le code nécessaire et suffisant pour savoir ce qui se passe exactement !
    On ne peut que faire des suppositions !

    Tu crées un objet Abonnement : quel est son code ?
    Tu exécutes une requête via un appel à dbc.executeSQL() : que fait cette méthode ?
    Et d'ailleurs quel est cet objet dbc ?

    Enfin, le problème ne vient certainement pas de là.

    Commence par trouver de trouver pourquoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int id = ( (Integer) jTableAbonnements.getValueAt(jTableAbonnements.
              getSelectedRow(), 0)).intValue();
    retourne -1

    Lorsqu'on a un problème de ce type, on décompose chaque appel de méthode pour voir, étape par étape, les différentes valeurs de retour.
    Tu verras, la solution apparaîtra d'elle même !

    PS : Que se passe-t-il si tu sélectionnes une autre ligne de ta JTable ?

  11. #11
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 44
    Points
    44
    Par défaut
    non ca ca ne retourne pas -1 ca retourne le bon id. c'est abt.getAbt_id() qui retourne -1... mon objet abonnement :
    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
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    public class Abonnement {
     
      public final static int NBCOLUMN = 7;
      private Date abt_dateDebut = null;
      private Date abt_dateFin = null;
      private int abt_enCours = -1;
      private double abt_Depot = -1;
      private double abt_prix = -1;
      private int abt_id = -1;
      private int tat_id = -1 ;
      private int rem_id = -1 ;
      private int ca_id = -1 ;
      private int abe_id = -1 ;
      public Abonnement() {
     
      }
     
      public Abonnement(Date dateDebut, Date dateFin) {
        abt_dateDebut = dateDebut;
        abt_dateFin = dateFin;
      }
     
      public Abonnement(Date dateDebut, Date dateFin, int enCours, double depot,
                        double prix) {
        abt_dateDebut = dateDebut;
        abt_dateFin = dateFin;
        abt_enCours = enCours;
        abt_Depot = depot;
        abt_prix = prix;
      }
     
      public Abonnement(Date dateDebut, Date dateFin, int enCours, double depot,
                        double prix, int id) {
        abt_dateDebut = dateDebut;
        abt_dateFin = dateFin;
        abt_enCours = enCours;
        abt_Depot = depot;
        abt_prix = prix;
        abt_id = id;
      }
     
      public Abonnement(Date dateDebut, Date dateFin, int enCours, double depot,
                      double prix, int id, int idTypeAbonnement, int idRemarque, int idCategorieAbo, int idAbonne) {
      abt_dateDebut = dateDebut;
      abt_dateFin = dateFin;
      abt_enCours = enCours;
      abt_Depot = depot;
      abt_prix = prix;
      abt_id = id;
      tat_id = idTypeAbonnement ;
      rem_id = idRemarque ;
      ca_id = idCategorieAbo ;
      abe_id = idAbonne;
    }
     
    public Abonnement(Date dateDebut, Date dateFin, int enCours, double depot,
                    double prix, int idTypeAbonnement, int idRemarque, int idCategorieAbo, int idAbonne) {
    abt_dateDebut = dateDebut;
    abt_dateFin = dateFin;
    abt_enCours = enCours;
    abt_Depot = depot;
    abt_prix = prix;
    tat_id = idTypeAbonnement ;
    rem_id = idRemarque ;
    ca_id = idCategorieAbo ;
    abe_id = idAbonne;
    }
    public Abonnement(int idAbonne)
    {
      abe_id = idAbonne ;
    }
     
     
      public String toString() {
        return abt_dateDebut + ", " + abt_dateFin + ", " + abt_enCours + ", " +
            abt_Depot + ", " + abt_prix;
      }
     
      public Date getAbt_dateDebut() {
        return abt_dateDebut;
      }
     
      public Date getAbt_dateFin() {
        return abt_dateFin;
      }
     
      public double getAbt_Depot() {
        return abt_Depot;
      }
     
      public int getAbt_enCours() {
        return abt_enCours;
      }
     
      public int getAbt_id() {
        return abt_id;
      }
     
      public double getAbt_prix() {
        return abt_prix;
      }
     
      public void setAbt_dateDebut(Date abt_dateDebut) {
        this.abt_dateDebut = abt_dateDebut;
      }
     
      public void setAbt_dateFin(Date abt_dateFin) {
        this.abt_dateFin = abt_dateFin;
      }
     
      public void setAbt_Depot(double abt_Depot) {
        this.abt_Depot = abt_Depot;
      }
     
      public void setAbt_enCours(int abt_enCours) {
        this.abt_enCours = abt_enCours;
      }
     
      public void setAbt_id(int abt_id) {
        this.abt_id = abt_id;
      }
     
      public void setAbt_prix(double abt_prix) {
        this.abt_prix = abt_prix;
      }
      public int getAbe_id() {
        return abe_id;
      }
      public int getCa_id() {
        return ca_id;
      }
      public int getRem_id() {
        return rem_id;
      }
      public int getTat_id() {
        return tat_id;
      }
     
     
     
    }

  12. #12
    NGY
    NGY est déconnecté
    Membre habitué
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 164
    Points
    164
    Par défaut
    Tu ne te mélangerais pas un peu les pinceaux entre ton abe_id et abt_id des fois ?
    Regarde ton constructeur Abonnement(int idAbonne) !

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 220
    Points : 266
    Points
    266
    Par défaut
    J'ai lu en vitesse, mais quand tu fais un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    abonnement = new Abonnement(id);
    c'est l'id que tu récupères sur ta JTable, et qui dans ton constructeur, intialise l'attribut abe_id...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public Abonnement(int idAbonne) 
    { 
      abe_id = idAbonne ; 
    }
    Donc, quand tu fais un getAbt_id(), il te renvoie -1, car cette valeur n'a jamais été touchée par ton constructeur... D'ou ton résultat...

  14. #14
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 44
    Points
    44
    Par défaut
    putin quel con, merci ca marque plus -1 maintenant mais ca fait toujours l'erreur
    Error in execute SQL

    sql: SELECT DATEDIFF(abt_dateFin,abt_dateDebut) FROM t_abonnement WHERE abt_id =39

    No row count was produced, code: 0, State: null

  15. #15
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 44
    Points
    44
    Par défaut
    personne n'a jamais croisé cette erreur ?

  16. #16
    Membre actif
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 220
    Points : 266
    Points
    266
    Par défaut
    ben tu ferai pas un next sur un resultset qui n'a pas ou pas assez de valeurs comme resultat ?

  17. #17
    NGY
    NGY est déconnecté
    Membre habitué
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 164
    Points
    164
    Par défaut
    Je te le redis encore une fois, bien que ça semble assez évident :
    Emettre des hypothèses, ça va 5 minutes, mais si tu nous avais donné un peu plus de code pour ton problème précédent, on l'aurai réglé de suite, sans envoyer une demi-douzaine de messages. Donc : sans ton code, on ne peut rien pour toi !!!

    (Tu bosses sur un projet top secret ou quoi

  18. #18
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 44
    Points
    44
    Par défaut
    ma méthode executeSQL
    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
      public int executeSQL(String rsql)
      {
        int rec = 0 ;
        Statement statmt = createStatement(connect) ;
     
        try
        {
          rec = statmt.executeUpdate(rsql) ;
        }
        catch (SQLException se)
        {
          System.err.println("Error in execute SQL") ;
          System.err.println("sql: " + rsql) ;
          DBConnection.showListSqlExceptions(se) ;
        }
        return rec ;
      }

  19. #19
    NGY
    NGY est déconnecté
    Membre habitué
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Points : 164
    Points
    164
    Par défaut
    Ahhhh ! Ca y est, on y arrive !

    Bon donc tu veux mettre le résultat de cette méthode dans une variable nbJours ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int nbJours = dbc.executeSQL(requete);
    Le problème, c'est que ta méthode executeSQL ne retourne pas le résultat de la requête !!!
    Consulte la doc de executeUpdate() pour en savoir plus.

    Il faut que tu utilises executeQuery() pour pouvoir récupérer le résultat d'une requête.
    Ensuite tu parcours le ResultSet obtenu pour en sortir le résultat de ta requête.
    Si tu ne sais pas comment manipuler tout ça, commence par regarder les liens que je t'ai donné hier concernat JDBC.

  20. #20
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 116
    Points : 44
    Points
    44
    Par défaut
    je crios que c'est bon
    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
      public int getNbJours(Abonnement abt) {
        int nbJours = 0;
        String requete =
            "SELECT DATEDIFF(abt_dateFin,abt_dateDebut) FROM t_abonnement WHERE abt_id = " +
            abt.getAbt_id();
        ResultSet rs = dbc.createResultSet(requete);
        try {
          if (rs != null) {
            if (rs.next()) {
              nbJours = rs.getInt(1);
            }
     
          }
        }
        catch (SQLException se) {
          dbc.showListSqlExceptions(se);
        }
        try {
          if (rs != null) {
            rs.close();
          }
        }
        catch (SQLException se) {
          dbc.showListSqlExceptions(se);
        }
        return nbJours;
      }

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Récupérer tous les jours entre deux dates
    Par GsusNET dans le forum Développement
    Réponses: 7
    Dernier message: 26/07/2023, 11h44
  2. fonction table pour récupérer la liste des jours entre deux dates
    Par elmoul7ak dans le forum Développement
    Réponses: 2
    Dernier message: 01/05/2010, 13h22
  3. Réponses: 2
    Dernier message: 25/02/2008, 23h40
  4. [Dates] Nombre de jours entre deux dates
    Par cmoiscrat dans le forum Langage
    Réponses: 3
    Dernier message: 22/09/2005, 15h25
  5. calcule du nombre de jours entre 2 dates
    Par nazimb dans le forum ASP
    Réponses: 4
    Dernier message: 28/09/2004, 15h22

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