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 :

MS Access et TQuery (probleme sur les dates)


Sujet :

C++Builder

  1. #1
    Membre actif
    Avatar de Djob
    Inscrit en
    Août 2002
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 215
    Points : 279
    Points
    279
    Par défaut MS Access et TQuery (probleme sur les dates)
    Bonjour,

    Je dois faire ,avec un TQuery, sur une base MS Access, une requete du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM OEUVRES WHERE DATE_OEUVRE>"22/05/2000 01:01:00"
    Sans l'heure, le code suivant fonctionne (# est equivalent à to_date sous oracle):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String Requete = "SELECT * FROM OEUVRES WHERE DATE_OEUVRE>#22/05/2000#"; 
    Query1->SQL->Add(Requete);
    Query1->Active=true;

    Mais en rajoutant l'heure , ça ne marche pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String Requete = "SELECT * FROM OEUVRES WHERE DATE_OEUVRE>#22/05/2000 01:01:00#"; 
    Query1->SQL->Add(Requete);
    Query1->Active=true;
    j'ai donc crée , une requete dans access qui m'a donné,en mode SQL, le format US de date #5/22/2000 1:1:0#" et qui s'execute correctement à partir de mS Access...
    ... , mais quand j'execute cette requete via TQuery ça ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String Requete = "SELECT * FROM OEUVRES WHERE DATE_OEUVRE>#5/22/2000 1:1:0#"; 
    Query1->SQL->Add(Requete);
    Query1->Active=true;
    et j'ai l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
         Field '1:0#' is of an unknown type
    je n'ai trouvé nul part la solution , juste un post d'un autre forum (http://dbforums.com/t396438.html) relatant le meme probleme mais ne donnant pas la solution ...

    je bloque depuis plus de 3 jours sur ce probleme , A l'aide !!![/b]

  2. #2
    Membre habitué
    Avatar de Freeze
    Homme Profil pro
    Inscrit en
    Octobre 2002
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 131
    Points : 162
    Points
    162
    Par défaut
    je suis pas sur que tu puisses faire ca comme ca ...
    tu crois que la date et l'heure vont être reconnu sous cette forme dans la requete SQL ??? rien de moins sur ...

  3. #3
    Membre actif
    Avatar de Djob
    Inscrit en
    Août 2002
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 215
    Points : 279
    Points
    279
    Par défaut
    Quelle methode me conseille tu alors ?

  4. #4
    Membre actif
    Avatar de Djob
    Inscrit en
    Août 2002
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 215
    Points : 279
    Points
    279
    Par défaut
    Juste une phenomene bizarre que je viens d'observer

    en examinant la propriete Text de query :

    1er cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String Requete = "SELECT * FROM OEUVRE WHERE DATE_OEUVRE>#5/22/2000#"
    Query1->SQL->Add(Requete);
    ShowMessage(Query1->Text);
    ..m'affiche bien
    SELECT * FROM OEUVRE WHERE DATE_OEUVRE>#5/22/2000#

    tandis que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String Requete = "SELECT * FROM OEUVRE WHERE DATE_OEUVRE>#5/22/2000 1:1:0#"
    Query1->SQL->Add(Requete);
    ShowMessage(Query1->Text);
    ... m'affiche:
    SELECT * FROM OEUVRE WHERE DATE_OEUVRE>#5/22/2000 0?

    Est-ce que ça ne viendrait pas de la bde ?

  5. #5
    Membre actif
    Avatar de Djob
    Inscrit en
    Août 2002
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 215
    Points : 279
    Points
    279
    Par défaut
    Bah ça y est j'ai compris mon erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Field '1:0#' is of an unknown type
    dans la requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT * FROM OEUVRES WHERE DATE_OEUVRE>#5/22/2000 1:1:0#";
    En fait le bde interprete mes 2 points ":" comme etant un parametre de TQuery ( cf. Propriete Params de TQuery) donc il cherche un parametre que j'aurais defini ayant le nom 1:0#

    ..mais comme j'avais jamis utilisé cette propriété Params ....

    donc en fait la solution est de mettre des doubles points "::"

    ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String Requete = "SELECT * FROM OEUVRES WHERE DATE_OEUVRE>#5/22/2000 1::1::0#"; 
    Query1->SQL->Add(Requete); 
    Query1->Active=true;

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

Discussions similaires

  1. Probleme sur les dates/format
    Par cott333 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/02/2012, 04h00
  2. Réponses: 9
    Dernier message: 03/06/2009, 14h36
  3. [Access] Calcul sur les dates
    Par vrachid dans le forum Bases de données
    Réponses: 21
    Dernier message: 02/04/2008, 14h17
  4. Help!! Probleme avec les dates sur SQL SERVER
    Par Nadaa dans le forum MS SQL Server
    Réponses: 16
    Dernier message: 03/08/2006, 16h55

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