Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Futur Membre du Club
    Homme Profil pro Samuel Denys LONGO NDONG
    Développeur informatique
    Inscrit en
    novembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Nom : Homme Samuel Denys LONGO NDONG
    Âge : 25
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2008
    Messages : 34
    Points : 17
    Points
    17

    Par défaut Problème de récupération des valeurs des colonnes de type date

    Bonjour,
    je travaille sur mon premier projet en java et j utilise une base de données mysql. J'ai une classe Alerte l'un des constructeurs est le suivant:
    Code :
    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
    public Alerte(int id,Controlleur controle)
    	{
    			this.setId(id);
    			ctrl=controle;
    			String Req="Select * from alerte a ,personne p where a.personne=p.id and a.id= "+
    		   			"'"+id+"'";
    						//code enregistrement dans base données
    		   			try {
    							if(ctrl.bd.ExecuteReq(Req))
    							{
    									if(ctrl.bd.R.first())
    							    	{
     
    										this.client=new Client(ctrl.bd.R.getString("nom"), ctrl.bd.R.getString("prenom"), controle);
    										this.dateAlerte=ctrl.bd.R.getDate("datealerte");
    										this.Texte=ctrl.bd.R.getString("texte");
    										this.voie=ctrl.bd.R.getInt("voie");
     
    									}
    									else
    									{
    										ctrl.setMessage(new Error("Cette Alerte n'existe pas dans le système","BAD",new Date()));
    									}
     
    							  }
    								else
    								{
    									 ctrl.setMessage(ctrl.bd.GetErrr());
    								}
     
    						} catch (SQLException e) {
    							// TODO Auto-generated catch block
    							ctrl.setMessage(new Error(e.getMessage(),e.getClass(),new Date(),e.getStackTrace()));
    						}
     
     
     
    	}
    Le contrôleur ici s'occupe entre autre d'interagir avec la base de données.
    L'instruction suivante pose problème
    Code :
    this.dateAlerte=ctrl.bd.R.getDate("datealerte");
    elle crée une exception de type class java.sql.SQLException avec le message suivant: Column date not found.

    Voici le schémas de la table Alerte:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE IF NOT EXISTS `alerte` (
      `Id` int(11) NOT NULL AUTO_INCREMENT,
      `datealerte` date,
      `texte` varchar(100) NOT NULL,
      `voie` int(11) NOT NULL,
      `personne` int(11) NOT NULL,
      PRIMARY KEY (`Id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
    J'ai essayé de modifier le nom de la colonne, le type. De recréer la table. J'ai également regardé le contenu des column name du ResultSetMetaData et il existe bel et bien cette colonne dans les résultats de la requette.

    Le pire c'est que par la suite je me suis rendu compte du fait que le même problème se posait avec tous les champs de type date ou datetime de la base de donnée.
    J'ai aussi changé de méthode pour utiliser GetString mais j'ai eu la même erreur.
    Je suis connecté pour des compléments d'information et continu de chercher parralèlement.
    Merci de votre attention à tous.

  2. #2
    Futur Membre du Club
    Homme Profil pro Samuel Denys LONGO NDONG
    Développeur informatique
    Inscrit en
    novembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Nom : Homme Samuel Denys LONGO NDONG
    Âge : 25
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2008
    Messages : 34
    Points : 17
    Points
    17

    Par défaut

    J'ai trouvé la solution. le problème venait en fait de ma classe controlle qui communique avec la base de donnée. Lorsque je construit un client ici:
    Code :
    this.client=new Client(ctrl.bd.R.getString("nom"), ctrl.bd.R.getString("prenom"), controle);
    le resultset était rechargé avec de nouveaux résultats d'une autre table. J'ai passé la soirée à gérer cela. Bonne année à tous. Beaucoup de projets et de bonheur.

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •