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 :

Comment utiliser un query à partir d'un timedatepicker ?


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 160
    Points : 61
    Points
    61
    Par défaut Comment utiliser un query à partir d'un timedatepicker ?
    Bonjour

    j'aimerai lorsque j'indique un chiffre dans un edit et après avoir pressé sur un bouton que mon dbgrid affiche tous les éléments dont le champ Echeance (de type date) est inférieur à la date résultante de la date de mon timedatepicker - le nombre pressé !

    ainsi si la date est celle d'aujourd'hui soit

    24/08/2005 - ce que j'ai mis dans mon edit = 30
    le résultat de ce calcul est mis dans une requête du style

    Where Echeance > Moncalcul . Pour connaître par exemple les échéances depuis 30 jours.

    Je n'arrive pas à mettre cela dans un query.


    Merci de vos précieux conseils

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    With Query do
    begin
      Close;
      SQL.Clear;
      SQL.add('select * from [LA_Table]');
      SQL.Add('Where [Echeance] > ' + FormatDateTime('[Le format]', DateTimePiket1.datetime - strtoint(edit1.text)));
      Open;
    end;
    Normalement, comme ca, ca devrait fonctionner, faut juste que tu remplaces ce qui est entre [] par tes valeurs a toi.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 160
    Points : 61
    Points
    61
    Par défaut ok
    Milles merci !

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 160
    Points : 61
    Points
    61
    Par défaut
    Une petite question :

    Que faut-il mettre à FormatDateTime('[?????]', ...

    tu as mis "Le Format"

    C'est à dire ?

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Que faut-il mettre à FormatDateTime('[?????]',
    Fais F1 sur cette fonction et tu trouveras rapidement ta réponse

    J'ai aussi 2 remarques :
    - fais attention aux résultats que tu risques d'obtenir si tu mélanges des types TDate et TDateTime (dans ton Edit tu récupéres un TDate ou un TDateTime ?) => je parle par expérience.
    - tu peux aussi utiliser les fonctions DecodeDate[Time] et EncodeDate[Time] pour calculer des intervalles de temps, cf l'aide en ligne.
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  6. #6
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par bertrand_declerck
    Une petite question :

    Que faut-il mettre à FormatDateTime('[?????]', ...

    tu as mis "Le Format"

    C'est à dire ?
    le format necessaire a ta base de données (Access : MM/DD/YYYY, MySQL YYYY-MM-DD, etc ...)
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 160
    Points : 61
    Points
    61
    Par défaut ok
    Merci

    cela m'a l'air bien compliqué en tout cas l'utilisation de date !

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 160
    Points : 61
    Points
    61
    Par défaut
    C'est pas ma journée apparemment !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    With Query1 do
    begin
      Close;
      SQL.Clear;
      sql.Add('SELECT CLIENTS.CLINOM1 AS CLIENTS , Sum(MVTS.MVTDEBIT) - Sum(MVTS.MVTCREDIT) as Somme   ');
      SQL.Add('FROM CLIENTS INNER JOIN MVTS ON CLIENTS.CLICODE = MVTS.MVTCOMPTE ');
      SQL.Add('WHERE  MVTS.MVTDATEDOC >  ' + FormatDateTime('[MM/DD/YYYY]', DateTimePicker3.DateTime)  );
      SQL.Add('GROUP BY CLIENTS.CLINOM1  ');
    Cela plante en me disant qu'il ya trop peu de paramètres attendus !

  9. #9
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    With Query1 do 
    begin 
      Close; 
      SQL.Clear; 
      SQL.Add('SELECT   CLIENTS.CLINOM1 AS CLIENTS, '+
              '         SUM(MVTS.MVTDEBIT) - SUM(MVTS.MVTCREDIT) AS Somme '+
              'FROM     CLIENTS '+
              '         INNER JOIN MVTS '+
              '           ON CLIENTS.CLICODE = MVTS.MVTCOMPTE '+
              'WHERE    MVTS.MVTDATEDOC > :dateParam '+
              'GROUP BY CLIENTS.CLINOM1');
      ParamByName('dateParam').AsDateTime := DateTimePicker3.DateTime;
    [...]
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 160
    Points : 61
    Points
    61
    Par défaut
    Merci Magnus de ton aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    With Query1 do
    begin
      Close;
      SQL.Clear;
      sql.Add('SELECT CLIENTS.CLINOM1 AS CLIENTS , Sum(MVTS.MVTDEBIT) - Sum(MVTS.MVTCREDIT) as Somme   ');
      SQL.Add('FROM CLIENTS INNER JOIN MVTS ON CLIENTS.CLICODE = MVTS.MVTCOMPTE ');
      SQL.Add('WHERE  MVTS.MVTDATEDOC > : dateParam   ' );
      SQL.Add('GROUP BY CLIENTS.CLINOM1  ');
      ParamByName('dateParam').AsDateTime := DateTimePicker3.DateTime;
     Open;
    end;
    Il plante en me disant que dateParam n'est pas trouvé !

    pourtant je le déclare !

  11. #11
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Il n'y a pas d'espace entre : et le nom du champ paramétré donc et non pas Si tu veux en savoir plus fais des recherches sur les forums sur les requêtes paramétrées.
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/02/2012, 15h22
  2. Réponses: 4
    Dernier message: 08/05/2010, 18h31
  3. Réponses: 0
    Dernier message: 01/02/2009, 11h37
  4. Comment utiliser OUT ?
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 3
    Dernier message: 20/07/2002, 09h35
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

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