Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > Delphi > Bases de données
Bases de données Vos questions concernant les bases de données (BDE, Access, SqlServer...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 01/12/2012, 15h45   #1
djiga4me
Membre du Club
 
Étudiant à la con!
Inscription : octobre 2008
Messages : 130
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Étudiant à la con!

Informations forums :
Inscription : octobre 2008
Messages : 130
Points : 66
Points : 66
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 ?
djiga4me est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2012, 15h53   #2
Cl@udius
Modérateur
 
Avatar de Cl@udius
 
Homme Claude Renouleaud
Développeur informatique
Inscription : février 2006
Messages : 4 860
Détails du profil
Informations personnelles :
Nom : Homme Claude Renouleaud
Âge : 50
Localisation : France, Hautes Pyrénées (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2006
Messages : 4 860
Points : 9 971
Points : 9 971
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.
Cl@udius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2012, 15h59   #3
SergioMaster
Modérateur
 
Avatar de SergioMaster
 
Homme Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 4 206
Détails du profil
Informations personnelles :
Nom : Homme Serge Girard
Âge : 56
Localisation : France

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

Informations forums :
Inscription : janvier 2007
Messages : 4 206
Points : 7 262
Points : 7 262
Avoir un champ date en format string dans une BDD me semble être (est) une aberration .
Citation:
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
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/12/2012, 16h02   #4
djiga4me
Membre du Club
 
Étudiant à la con!
Inscription : octobre 2008
Messages : 130
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Étudiant à la con!

Informations forums :
Inscription : octobre 2008
Messages : 130
Points : 66
Points : 66
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.
djiga4me est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2012, 16h02   #5
BuzzLeclaire
Membre Expert
 
Avatar de BuzzLeclaire
 
Homme
Dev/For/Vte/Ass
Inscription : août 2008
Messages : 1 499
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 499
Points : 1 059
Points : 1 059
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.
BuzzLeclaire est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h13.


 
 
 
 
Partenaires

Hébergement Web