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 :

Erreur d'expression arithmetique et filtre


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club Avatar de smail21
    Profil pro
    Inscrit en
    Février 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2005
    Messages : 152
    Points : 61
    Points
    61
    Par défaut Erreur d'expression arithmetique et filtre
    je veux filtrer une table ayant un champs reférancé 'Date'
    le filtre est correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Filtre:=Concat('(RefDate >='+Edit17.text+') and (RefDate <='+Edit18.text+')' );
     art_entree.Filter:=Filtre;
    art_entree.Filtered:=True;
    le filtre est correct mais à l'execution il affiche un message d'erreur : "arithméthique non supporté dans les expressions filtre."


    que dois-je faire

  2. #2
    Membre averti
    Avatar de delphichem
    Inscrit en
    Octobre 2002
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 280
    Points : 338
    Points
    338
    Par défaut
    Essaies

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Filtre:='(RefDate >='''+Edit17.text+''') and (RefDate <='''+Edit18.text+''')' ;

  3. #3
    Membre éclairé Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Points : 695
    Points
    695
    Par défaut
    Slt,
    Moi j'ai utilisé l'evenement "OnFilterRecord" d'un TTable et j'ai mis dedans du code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    with MaTable  do
          Accept:=( StrToDate(FieldValues['MaDate'])>=DateDebut ) and
            (StrToDate(FieldValues['MaDate'])<=DateFin);
    Moi aussi j'ai essayé comme t'as fait toi Smile21 et j'ai eu le même message d'erreur !

  4. #4
    Membre averti
    Avatar de delphichem
    Inscrit en
    Octobre 2002
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 280
    Points : 338
    Points
    338
    Par défaut
    Citation Envoyé par bassim
    Slt,
    Moi j'ai utilisé l'evenement "OnFilterRecord" d'un TTable
    Cette solution n'est valable que si tu utilises le même filtre pour cette table, sinon, si tu veux filtrer avec d'autre critères, tu devra desactivé OnFilterRecord.
    Si tu n'utilises pas d'autre filtre utilise "OnFilterRecord" sinon il vaut mieu ne pas l'utiliser.

  5. #5
    Membre du Club Avatar de smail21
    Profil pro
    Inscrit en
    Février 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2005
    Messages : 152
    Points : 61
    Points
    61
    Par défaut
    delphichem : j'ai fait ça et ça ne marceh pas! c'ts toujours le meme message d'erreur
    donc ce n'ets pas le filtre qui est mal exprimé mais un probleme de filtrage

    pour le 'onfilterrecords' je ne crois pas que c'est valable pour moi, car la table subit plusieurs filtre !
    donc j'attends plus de réponse et merci d'avance

  6. #6
    Membre averti
    Avatar de delphichem
    Inscrit en
    Octobre 2002
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 280
    Points : 338
    Points
    338
    Par défaut
    Je viens de tester et ça fonctionne tres bien chez moi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Filtre:='(RefDate >='''+Edit17.text+''') and (RefDate <='''+Edit18.text+''')' ;
    Base de donnée Paradox
    RefDate est de type date
    le contenu de Edit17.text et edit18.text sont des chaines de caractères qui contiennent des dates valides (en fonction du séparateur de date).

    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Edit17.text := '01-01-1990';
    Edit18.text := '31-12-2005';
    Dans ma machine le séparateur de date est '-'.

  7. #7
    Membre éclairé Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Points : 695
    Points
    695
    Par défaut
    Citation Envoyé par delphichem
    Je viens de tester et ça fonctionne tres bien chez moi
    Moi , j'ai essayé un code qui lui ressemble mais ça ne marche pas ;
    Le voici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Filter:='(Date>='''+QuotedStr(DateToStr(DateM))+''') and (date<='''+QuotedStr(DateToStr(DateMFin))+''')'
    ou
    Date = un champ de type 'date' d'une table PARADOX
    DateM et DateMFin = Dates de type TDateTime

  8. #8
    Membre du Club Avatar de smail21
    Profil pro
    Inscrit en
    Février 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2005
    Messages : 152
    Points : 61
    Points
    61
    Par défaut
    Pardos delphichem:
    votre code marche très bien je croyais ue c'etait le meme que le miens, alors qu'il y'avait dans ton code , des quotes doublées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Filtre:='(RefDate >='''+Edit17.text+''') and (RefDate <='''+Edit18.text+''')' ;
    merci

  9. #9
    Membre averti
    Avatar de delphichem
    Inscrit en
    Octobre 2002
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 280
    Points : 338
    Points
    338
    Par défaut
    Ya pas de problême, mais n'oublie pas le tag Resolu

  10. #10
    Membre averti
    Avatar de delphichem
    Inscrit en
    Octobre 2002
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 280
    Points : 338
    Points
    338
    Par défaut
    Citation Envoyé par bassim
    Moi , j'ai essayé un code qui lui ressemble mais ça ne marche pas ;
    Le voici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Filter:='(Date>='''+QuotedStr(DateToStr(DateM))+''') and (date<='''+QuotedStr(DateToStr(DateMFin))+''')'
    Attention si tu utilises QuotedStr n'utilise pas les double cotes, moi personnellement je prefer ne pas utiliser QuotedStr sinon voici le code avec QuotedStr

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Filter:='(Date>='+QuotedStr(DateToStr(DateM))+') and (date<='+QuotedStr(DateToStr(DateMFin))+')'

  11. #11
    Membre du Club Avatar de smail21
    Profil pro
    Inscrit en
    Février 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2005
    Messages : 152
    Points : 61
    Points
    61
    Par défaut
    je ne peux pas mettre le tag Résolu, car y'a bassim qui n'a pas encore réglé son probleme, sinon ça poura l'exclure d'eventuelles solutions apportées par d'autres surfeurs!
    tu voi sbasim je pense à toi

  12. #12
    Membre éclairé Avatar de bassim
    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Février 2005
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 666
    Points : 695
    Points
    695
    Par défaut
    Oui Delphichem ton code marche à merveille !


    Citation Envoyé par Smail21
    tu voi bassim je pense à toi
    Heureusement qu'il y a des gens qui pensent à moi

    Vous pouvez maintenant fermer la porte les gars ,

    A bientot pour un autre sujet

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

Discussions similaires

  1. Expression arithmetique Methode récursive
    Par zana74 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 15/10/2007, 18h06
  2. Réponses: 1
    Dernier message: 02/01/2007, 11h22
  3. [VBA-E] Erreur 16 expression trop complexe
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/04/2006, 11h44
  4. evaluation d'une expression arithmetique
    Par yasmine77 dans le forum C++
    Réponses: 4
    Dernier message: 04/04/2006, 09h11
  5. Evaluation/simplification d'expression arithmetique
    Par Premium dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 08/12/2005, 12h19

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