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 Delphi Discussion :

AdoQuery + Date


Sujet :

Bases de données Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 41
    Points : 27
    Points
    27
    Par défaut AdoQuery + Date
    Bonjour,

    je veux mettre dans un combobox des dates recuperées par sql dans la table anniversaire et dans le champ datedebut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        DM.ADOQueryAnniversaire.Close;
        DM.ADOQueryAnniversaire.SQL.Clear;
        DM.ADOQueryAnniversaire.SQL.Add('SELECT DateDebut FROM Anniversaire where DateDebut between (#01/01/2006# and #02/11/2006#)');
        DM.ADOQueryAnniversaire.Open;
        while not DM.ADOQueryAnniversaire.Eof do
          begin
              ComboBox1.Items.Add(DM.ADOQueryAnniversaire.FieldbyName('DateDebut').asString);
              DM.ADOQueryAnniversaire.Next;
          end;
    J'ai mis des # car j'ai lu que # est la déclaration des dates sous access.

    J'ai le message d'erreur suivant :
    Classe d'exception EOleException avec le message 'Opérateur Between sans And dans l'expression DateDebut between (#01/01/2006# and #02/11/2006#)

  2. #2
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 14
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Bonjour,

    Passe tes dates en paramètre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    DM.ADOQueryAnniversaire.Close;    
    DM.ADOQueryAnniversaire.SQL.Clear;    DM.ADOQueryAnniversaire.SQL.Add('SELECT DateDebut FROM Anniversaire where DateDebut between (:DateDeb and :DateFin)');
    DM.ADOQueryAnniversaire.prepare;
    
    DM.ADOQueryAnniversaire.Parameters.parambyname('DateDeb').value := StrToDate('01/01/2006');
    DM.ADOQueryAnniversaire.Parameters.parambyname('DateFin').value := StrToDate('02/11/2006');
    
     DM.ADOQueryAnniversaire.Open;    
    while not DM.ADOQueryAnniversaire.Eof do      
    begin          ComboBox1.Items.Add(DM.ADOQueryAnniversaire.FieldbyName('DateDebut').asString);      DM.ADOQueryAnniversaire.Next;
    end;
    enfin un truc comme ça je pense.

    A voir.
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 41
    Points : 27
    Points
    27
    Par défaut
    C'est nouveau pour moi. Je m'en suis jamais servi de ces commandes. J'ai rajouté d à prepare (vu sur l'aide).
    J'ai le meme message sauf "between (? and ?)"

    Faut-il ajouter quelquechose dans use ?

  4. #4
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 897
    Points : 6 024
    Points
    6 024
    Par défaut
    La syntaxe de between est SANS accolade...
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

Discussions similaires

  1. Réponses: 6
    Dernier message: 07/05/2008, 23h13
  2. Problème de filtre sur date avec ADOQuery
    Par lingli dans le forum Bases de données
    Réponses: 12
    Dernier message: 30/04/2006, 16h40
  3. Generation d'evenements a une date precise
    Par pascalzzz dans le forum MFC
    Réponses: 2
    Dernier message: 04/06/2002, 16h21
  4. Réponses: 3
    Dernier message: 06/05/2002, 19h24
  5. Réponses: 3
    Dernier message: 19/04/2002, 01h11

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