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

Bases de données Discussion :

Problème avec la date 01/01/9999


Sujet :

Bases de données

  1. #1
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Par défaut Problème avec la date 01/01/9999
    Bonjour tout le monde,
    J'ai développé une application Qt 4.3 qui insère des enregistrements dans une base de données Firebird.
    Mon problème s'est déclenché lorsque j'ai voulu inséré dans un champ de type Date la valeur 01.01.9999
    En fait, lorsque j'exécute ma requête je n'ai aucune erreur mais lorsque je consulte ma base je ne trouve pas l'enregistrement.
    J'ai debogué l'application et j'ai trouvé que la date 01.01.9999 est considéré comme invalide de la part de Qt.
    Sachant que coté base de données, je peux insérer cet enregistrement sans aucun problème et je le consulte.
    Est ce que quelqu'un peut me renseigner comment résoudre ce problème.
    Merci de votre collaboration.
    Bien cordialement.

  2. #2
    Membre Expert Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    Citation Envoyé par mercure07 Voir le message
    J'ai debogué l'application et j'ai trouvé que la date 01.01.9999 est considéré comme invalide de la part de Qt.
    Il faut savoir comment marche les dates dans Qt.
    Quel est l'intérêt de mettre une date qui correspond à ajourd'hui + 8000 ans ?

  3. #3
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Par défaut
    C'est mon client qui veut insérer pareille date.
    J'ai cherché et j'ai découvert que les dates dans Qt sont géré dans un intervalle bien déterminé (Classe QDateTimeEdit).
    J'ai voulu changé le maximumDate mais j'ai pas pu car mon application est une application console !

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut
    Cela n'a aucun intérêt d'utiliser cette classe dans ton cas, c'est un widget pour que l'utilisateur rentre une date dans une GUI, tu peux imposer des conditions sur les dates possibles.

    Dans ton cas, QDate est la seule classe qui t'intéresse, voire QDateTime si tu as besoin de plus. On trouve dans sa documentation :

    The range of valid dates is from January 2nd, 4713 BCE, to sometime in the year 11 million CE.
    Ta date devrait donc être traitée correctement, sauf si elle tombe pile-poil dans un vide du calendrier grégorien, ce qui m'étonnerait franchement (à part la nuit du 4 au 15 octobre 1582, il n'y a pas eu de gros problème du genre...).

    Quel est ton code ?
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  5. #5
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Citation Envoyé par mercure07 Voir le message
    Bonjour tout le monde,
    J'ai développé une application Qt 4.3 qui insère des enregistrements dans une base de données Firebird.
    Mon problème s'est déclenché lorsque j'ai voulu inséré dans un champ de type Date la valeur 01.01.9999
    En fait, lorsque j'exécute ma requête je n'ai aucune erreur mais lorsque je consulte ma base je ne trouve pas l'enregistrement.
    J'ai debogué l'application et j'ai trouvé que la date 01.01.9999 est considéré comme invalide de la part de Qt.
    Sachant que coté base de données, je peux insérer cet enregistrement sans aucun problème et je le consulte.
    Est ce que quelqu'un peut me renseigner comment résoudre ce problème.
    Merci de votre collaboration.
    Bien cordialement.
    tu es tombé face au fameux bug de l'an 9999 ... on raconte qu'au premier janvier de cette année là tous les ordinateurs cesseront de fonctionner, mais ce n'est qu'une rumeur

  6. #6
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Par défaut
    Merci pour vos réponse.
    Ta date devrait donc être traitée correctement, sauf si elle tombe pile-poil dans un vide du calendrier grégorien, ce qui m'étonnerait franchement (à part la nuit du 4 au 15 octobre 1582, il n'y a pas eu de gros problème du genre...).

    Quel est ton code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if((list[i].isNull()) || list[i].isEmpty() || (list.at(i) == "#NL#"))
    	thQuery.addBindValue(QVariant(QVariant::Date));
    else 
            thQuery.addBindValue(QDate::fromString(list[i], "dd.MM.yyyy"));
    Lorsque je mets ma date dans une variable QDate, Qt me renvoie que cette date est invalide !

Discussions similaires

  1. problème avec les dates!!
    Par JauB dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 28/10/2005, 09h16
  2. problème avec les dates nulles
    Par shingo dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 30/09/2005, 12h32
  3. probléme avec une date/string dans un CommandText
    Par critok dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/02/2005, 15h30
  4. [SQL] problème avec les date et les group By
    Par Stef784ever dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/11/2004, 09h18
  5. Interbase - dbExpress -> problème avec les dates
    Par marghett dans le forum Bases de données
    Réponses: 4
    Dernier message: 02/07/2004, 03h55

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