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

C++Builder Discussion :

[BCB5] Probleme Date et Heure en SQL


Sujet :

C++Builder

  1. #1
    Membre confirmé Avatar de bfespi69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Par défaut [BCB5] Probleme Date et Heure en SQL
    Bonjour,

    Je travaille sur une application qui interagit sur des bases de données de type access (.mdb) par le biais des composants TSession, TDataBase, TTable et TQuery

    Dans ma table (crée sous ACCESS) je possède :
    - un champ DateMes de type Date/Heure au format Date,abrégé
    - un champ HeureMes de type Date/Heure au format Heure,abrégé.
    - d'autres champs....

    La syntaxe que j'ai utilisée pour ajouter un enregistrement qui contiendra des valeurs pour DateMes et HeureMes est celle là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    AnsiString Requete = "INSERT INTO MESURES (DateMes,HeureMes,AcEC1) VALUES ('22/10/09','23:50',123456)"
     
    this->Query->SQL->Add(Requete);
    this->Query->ExecSQL();
    Cette requete fonctionne et crée bien mon enregistrement.

    Par contre quand je désire mettre à jour cet enregistrement par cette syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    AnsiString Requete = "UPDATE MESURES SET AcEC1=654321 WHERE DateMes='22/10/09' AND HeureMes='23:50'";
     
    this->Query->SQL->Add(Requete);
    this->Query->ExecSQL();
    mon application génère une exception EDBEngineError avec le message 'Erreur SQL Générale : Type de données incompatibles dans l'expression du critère'

    Si je remplace les conditions sur DateMes et HeureMes dans le WHERE par un champ de type Entier par exemple "WHERE AcEC2=0" (AcEC2 type entier) cela fonctionne parfaitement.

    Apparemment la condition sur une date ou une heure avec la syntaxe que j'ai utilisée ne fonctionne pas ou n'est pas possible....

    Si quelqu'un a une idée sur mon problème n'hésitez pas !!

  2. #2
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Sous ORACLE tu pourrait utiliser TO_DATE:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE MESURES SET AcEC1=654321 
    WHERE DateMes = TO_DATE('22/10/09', 'dd/mm/yy')

    Mais comme il me semble que c'est impossible sous ACCESS (je ne suis pas trop familiarisé à Access), peut être que ca marche en faisant:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    UPDATE MESURES SET AcEC1=654321 
    WHERE YEAR(DateMes)  = 2009
    AND MONTH(DateMes)   = 10
    AND DAY(DateMes)     = 22
    AND HOUR(HeureMes)   = 23
    AND MINUTE(HeureMes) = 50

    Je ne sais pas si cela fonctionne, ni si c'est la solution la plus simple.
    C'est juste une idée.

    .

  3. #3
    Membre confirmé Avatar de bfespi69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Par défaut
    Je ne sais pas si c est la solution la plus simple mais en tout cas cette solution proposée pour ACCESS fonctionne.
    Il m' a suffit de décortiquer mes dates et heures pour ensuite tester chacune des valeurs (Année,Mois,Jour,Heures,Minutes)

    Cette idée est une bonne idée.

    Je vérifie tout ça avant de mettre "Résolu".

    Merci sat83!

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

Discussions similaires

  1. Problème avec date et heure dans sql
    Par samibipbip dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/12/2011, 19h16
  2. insertion date et heure dans SQL server
    Par robinash dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 16/01/2008, 17h40
  3. [SQL] Encore un probleme de date et heure !
    Par Maxi-môme dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 28/06/2007, 16h25
  4. [sql server] requête sur dates et heures (format du résultat
    Par isachat666 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 21/02/2006, 13h48
  5. probleme date et heure avec mysql.
    Par argon dans le forum Langage SQL
    Réponses: 1
    Dernier message: 11/07/2005, 22h42

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