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

AWT/Swing Java Discussion :

Type de ma variable?


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 139
    Par défaut Type de ma variable?
    Bonjour tous le monde,

    Je suis face à un problème bizarre.
    Je suis sur un projet swing avec JDBC et Oracle.
    Mon problème c'est le tri.
    J'ai un Jtable, quand je demande de faire le tri il ne trie pas comme il faut.
    Je m'explique.
    si j'ai 0,2,10,12,20 quand je fais le tri par ordre croissant il m'affiche : 0,10,12,2,20 alors que je veux 0,2,10,12,20
    Ce que je fais c'est que je récupère le type de mon champ et je rajoute le type devant afin d'envoyer la requête à oracle en la préfixant avec le type.
    des fois ça marche mais pour d'autres champs ça marche pas.
    voici mon extrait du code:
    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
    public String getAttribut() {
            String result = attribut.getNomCourt();
            String dataType = attribut.getField().getDataType();
            LOG.info(" La colonne :  " + result + " est de type : " + dataType);
     
            if (dataType.equals(Field.DATATYPE_INTEGER) || dataType.equals(Field.DATATYPE_DECIMAL)) {
                return result = "TO_NUMBER(" + result + ")";
            }
            if (dataType.equals(Field.DATATYPE_INT_DATE)) {
                return result = "TO_DATE(" + result + ")";
            }
            if (!caseSensitive) {
                return result = "UPPER(" + result + ")";
            }
            return result;
        }
    Je sais pas vraiment ce qu'il faut faire.
    Merci de me dire si vous avez deja eu ce probleme et quelle pistes avez vous explorer.
    Le truc qui me vient a l'esprit est de prendre le champ peu importe son type et examiner la valeur suivant les types predeifinies.
    Peut etre y'a des choses que je n'ai pas saisi en disant ça.

    un exemple de la trace:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    La colonne :  SERV_NL_CODE est de type : TEXT
    voici le champ en question :
    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
    0004
    1508
    1404
    1604
    1604
    1604
    1104
    2704
    1114
    1204
    1209
    0000
    0000
    1604
    2114
    2604
    2214
    2214
    2214
    0000
    2524
    1304
    1304
    2134
    1204
    2214
    0704
    1808
    0704
    2214
    Pour info tous les champs dans la base sont de type varchar2. et il est impossible de changer le type car c'est une veille application et changer le type demande un travail colossal.

    Cordialement

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Le problème est que tu tries des chaînes de caractères, qui sont triées par "code ASCII", donc 10 est avant 2 (parce que le caractère 1 est avant le 2). Il faut convertir ces chaînes en nombre pour trier selon l'ordre des nombres (Integer.valueOf().compareTo(Integer.valueOf()) en Java dans le Comparator, ORDER BY to_number(column) en ORACLE - créer un index avec cette formule pourrait être une bonne idée d'ailleurs)

    Là, je ne sais pas où tu utilises getAttribut() (si c'est pour construire la clause ORDER BY, ou autre), mais on dirait que tu as essayé d'implémenter l'idée, mais pas dans le bon sens. Tu testes si le type de la donnée est numérique et dans ce cas, tu la convertis en numérique. alors que ça devrait être l'inverse, en tout cas pour construire la clause "ORDER BY".
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 139
    Par défaut
    Merci pour ta reponse,

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

Discussions similaires

  1. determiner le type d'une variable
    Par Mokhtar BEN MESSAOUD dans le forum Langage
    Réponses: 1
    Dernier message: 14/03/2006, 17h11
  2. [VBA-E]Renvoyer le type d'une variable
    Par alexxx69 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/02/2006, 18h07
  3. Connaitre le type d'une variable
    Par mic79 dans le forum Langage
    Réponses: 2
    Dernier message: 04/01/2006, 15h42
  4. Changer el type d'une variable sql sous postgre8/admin
    Par smag dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 24/08/2005, 12h31
  5. Réponses: 9
    Dernier message: 22/07/2005, 16h10

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