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 :

Remontée du nom de champs à la place de l'alias


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut Remontée du nom de champs à la place de l'alias
    Bonjour

    J'ai une classe qui me formate en html le résultat d'une requête. Mon pb est qui les nom de chp des tables n'étant suffisamment pas explicites, j'aimerai utiliser des alias mais ils ne sont pas pris en compte par le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    try{rs = stmt.executeQuery(sql);
    			if(rs.next())
    				{nbCol = rs.getMetaData().getColumnCount()+1;
    				 rs.beforeFirst();}
     
    			//encadrement i=1 tbl  i=nbCol-1 trbl
    			text.append("<tr bgcolor=\"#E8E9D8\">");
    			for(int i=1;i<nbCol;i++)
    				{largeur = 0;
    				 try{largeur = (Integer.parseInt(taille[i])*37)/10;}catch(final Exception e){}
    				 text.append("<td class=\""+(i==(nbCol-1)? "trbl":"tbl")+"\" width=\""+largeur+"pt\"><b>"+rs.getMetaData().getColumnName(i)+"</b></td>");}
    			text.append("\n</tr>\n<!--fin titre--!>\n");
    Y-a-t-il une solution ?
    Merci

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Pour que ça fonctionne, il faudrait faire une requête du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select UTI_NOM as Nom, GRU_MNEMO as Groupe 
    from MaTable
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut
    Justement c'est ce j'ai fait (mysql)

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Ben moi aussi... et ça fonctionne...

    Tu utilises quel driver ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut
    Connecteur: mysql-connector-java-5.1.5-bin.jar.

    Je suis tenu par java5 pour cause de diffusion nationale.

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Damned, je testais avec Oracle
    Avec MySQL, il faut rajouter les quotes autour du nom de la colonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select 'nomColonne' as Alias ...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut
    J'ai trouvé, pourtant je l'avais déjà testé (pb de compilation?), il faut utiliser rs.getColumnLabel(i)
    voir bug 320504
    Note: The JDBC-compliant way of getting the information you're asking for, i.e. the
    "alias" for the column is by calling ResultSetMetaData.getColumnLabel(), not
    getColumnName(). The reason that getColumnName() is _not_ supposed to return the alias, is
    because it is supposed to be possible for a consumer of this API to generate a DML
    statement based on the metadata present in the ResultSet and ResultSetMetaData, and thus
    getColumnName() should return the _physical_ column name, not the alias.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/08/2008, 15h05
  2. nom des champs d'une table
    Par K-ZimiR dans le forum Requêtes
    Réponses: 6
    Dernier message: 22/04/2004, 14h21
  3. comment recuperer le nom des champs ?????
    Par e11137 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 09/01/2004, 10h00
  4. Nom du champs auto-incrementé
    Par norroy dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/06/2003, 18h30
  5. Récupération des noms de champs d'une table
    Par Battomura dans le forum SQL
    Réponses: 2
    Dernier message: 24/03/2003, 10h00

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