Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2008
    Messages : 158
    Points : 114
    Points
    114

    Par défaut ClientDataSet, un champs Date, Index

    Bonjour,
    Sous Delphi XE2,
    J'ai un ClientDataSet, avec entre autre un champs nommé "Date" au format String, contenant évidemment une date valide (dd/mm/yyyy).
    Je voudrais indexer (pour trier dans l'ordre ascendant le contenu de la table) en utilisant le champs "Date".
    Mais en faisant cela, appliquant soit IndexDefs, ou IndexName. Les données sont classées mais bizarrement seulement en utilisant la partie dd de la chaine "Date".
    Par exemple, les données 12/09/2012, 28/11/2012, 04/12/2012 sont triées ainsi 04/12/2012, 12/09/2012, 28/11/2012, ce qui n'est pas correct.
    Auriez-vous une idée de comment faire correctement ?

  2. #2
    Modérateur
    Avatar de Cl@udius
    Homme Profil pro Claude Renouleaud
    Développeur informatique
    Inscrit en
    février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Nom : Homme Claude Renouleaud
    Âge : 51
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : février 2006
    Messages : 4 878
    Points : 9 996
    Points
    9 996

    Par défaut

    Salut
    Citation Envoyé par djiga4me Voir le message
    J'ai un ClientDataSet, avec entre autre un champs nommé "Date" au format String
    Citation Envoyé par djiga4me Voir le message
    Par exemple, les données 12/09/2012, 28/11/2012, 04/12/2012 sont triées ainsi 04/12/2012, 12/09/2012, 28/11/2012, ce qui n'est pas correct.
    Je dirais que ce tri est malheureusement correct, puisque tu manipules une chaine de caractères. Regarde le 1° caractère de chaque date, le tri est dans l'ordre alphabétique.

    Utiliser un champ de type date (au lieu de string) serait beaucoup plus approprié.

    @+
    A la question technique que par MP/MV tu formuleras, la réponse aux oubliettes finira.

  3. #3
    Rédacteur/Modérateur
    Avatar de SergioMaster
    Homme Profil pro Serge Girard
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    5 085
    Détails du profil
    Informations personnelles :
    Nom : Homme Serge Girard
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 5 085
    Points : 9 417
    Points
    9 417

    Par défaut

    Avoir un champ date en format string dans une BDD me semble être (est) une aberration .
    les données 12/09/2012, 28/11/2012, 04/12/2012 sont triées ainsi 04/12/2012, 12/09/2012, 28/11/2012, ce qui n'est pas correct.
    ce tri est correct, puisque fait sur une zone Alphanumérique, dans ce contexte '0' est bien avant '1' lui-même avant '2'

    s'il y avait besoin d'une preuve ou d'un argument pour convaincre de stocker une Date au format Date ou TimeStamp dans une BDD , vous l'avez

    [edit] grillé par Cl@udius
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2008
    Messages : 158
    Points : 114
    Points
    114

    Par défaut

    D'accord, merci beaucoup. Je finirais par reconvertir toutes les données.
    Ce qui m'étonne, c'est qu'avant une petite correction n'ayant aucun rapport avec cela dans le logiciel, le tri ne marchait plus alors qu'avant, même avant champs String, ça marchait très bien.

  5. #5
    Membre Expert Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    août 2008
    Messages
    1 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : août 2008
    Messages : 1 527
    Points : 1 015
    Points
    1 015

    Par défaut

    A chaque fois que tu triera un champs text forcement tu aura cette problématique.

    Soit tu change le type de ton champs en TDate,
    Soit du écrit ta date à l'envers 2014/11/17 pour pouvoir trier en alphanumérique.

    Mais @Sergio à raison.

+ 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
  •