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 :

Mauvaise syntaxe sur test


Sujet :

Bases de données Delphi

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 34
    Points : 30
    Points
    30
    Par défaut Mauvaise syntaxe sur test
    Bonjour,
    Je viens d'ajouter un test supplémentaire al'aide d'un OR, mais j'ai une erreur que je ne parviens pas à trouver: Je joins ce bout de code, si vous avez une idée,
    Je vous remercie.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    with Datasource1.DataSet do
          begin
       filter := '';
       filtered := False;
       filter := 'date_fact <=  ' + datetostr(Datetimepicker1.date);
       filter := filter + ' AND REGLE_LE  = NULL' ;
       Filter := filter + ' OR REGLE_LE  > ' + datetostr(Datetimepicker1.date); 
       filter := filter + ' AND PCENT_TVA  = 0   ' ;
       filtered := True;
    end;

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 903
    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 903
    Points : 6 027
    Points
    6 027
    Par défaut
    Citation Envoyé par bzh56 Voir le message
    mais j'ai une erreur
    LAQUELLE ?????
    "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

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 34
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par qi130 Voir le message
    LAQUELLE ?????
    à la compil, pas de probl.
    A l'éxécution:le message suivant.
    Le projet xxx a provoqué uen classe d'exception EOLeExecption avec le message " Arguments are of the wrong type, are out of acceptable range, or in conflict with one another".
    Merci d'avoir pris en compte mon probl.
    Cordialement,
    Alain

  4. #4
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    le probleme ne viens pas de la syntaxe delphi.

    Pour la violation d'acces, verifie que le DateTimePicket est bien crée.
    Sinon c'est l'utilisation du filtre qui pose probleme. Bonne syntaxe ?
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 34
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par Clorish Voir le message
    le probleme ne viens pas de la syntaxe delphi.

    Pour la violation d'acces, verifie que le DateTimePicket est bien crée.
    Sinon c'est l'utilisation du filtre qui pose probleme. Bonne syntaxe ?
    Effectivement c'est un probleme de syntaxe sur le filter, car avant l'ajout du test sur sur la date > a datetimepicker1, tout fonctionnait.
    Le datetime picker1 existe puisque déja sollicité plus haut.
    Je pense à des parenthèses mal placées, mais depuis ce matin à travers mes recherches et mes docs je ne trouve pas.
    merci quand meme.

  6. #6
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    il faudrait pas mettre la date entre quote ' ' ?

    PS: il est préférable de passer aux requêtes SQL.

  7. #7
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 300
    Points
    11 300
    Billets dans le blog
    6
    Par défaut
    a-t'on le droit d'écrire "machin and truc or bidule" sans parenthèses pour les priorités d'opérateurs logiques ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 34
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    a-t'on le droit d'écrire "machin and truc or bidule" sans parenthèses pour les priorités d'opérateurs logiques ?
    J'ai éssauyé également en mettant des parenthèses, mais rien de mieux.
    Merci

  9. #9
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 903
    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 903
    Points : 6 027
    Points
    6 027
    Par défaut
    Peux-tu fournir la définition de la table ?
    "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

  10. #10
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 574
    Points
    574
    Par défaut
    le probleme viens du manque de quotes comme signalé plus haut. la solution est d'en mettre : QUOTEDSTR(datetostr(Datetimepicker1.date))
    Si vous êtes libre, choisissez le Logiciel Libre.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 34
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par TryExceptEnd Voir le message
    le probleme viens du manque de quotes comme signalé plus haut. la solution est d'en mettre : QUOTEDSTR(datetostr(Datetimepicker1.date))
    Bonjour,
    Je reviens vers vous car j'ai essayé vos dernières suggestions mais sans succès.
    Je livre le dernier bout de code utilisé, avec toujours le meme message d'erreur.
    Merci de votre aide


    filter := '';
    filtered := False;
    filter := 'date_fact <= ' + QUOTEDSTR(datetostr(Datetimepicker1.date));
    filter := filter + ' AND (REGLE_LE = NULL)' ;
    Filter := filter + ' OR REGLE_LE > ' + QUOTEDSTR(datetostr(Datetimepicker1.date));
    filter := filter + ' AND PCENT_TVA = 0 ' ;
    filtered := True;

  12. #12
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    As-tu essayé en utilisant OnFilterRecord de ton DataSet ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    procedure TForm1.QueryFilterRecord(DataSet: TDataSet;
      var Accept: Boolean);
    var
      Cond1, Cond2: Boolean;
    begin
      with DataSet do
      begin
        Cond1 := (FieldByName('DATE_FACT').AsDateTime <= DateTimePicker1.Date) and
                 (FieldByName('REGLE_LE').IsNull);
        Cond2 := (FieldByName('REGLE_LE').AsDateTime > DateTimePicker1.Date) and
                 (FieldByName('PCENT_TVA').AsFloat = 0);
      end;
      Accept := Cond1 or Cond2;
    end;
    @+ Claudius

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 34
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par Cl@udius Voir le message
    Salut

    As-tu essayé en utilisant OnFilterRecord de ton DataSet ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    procedure TForm1.QueryFilterRecord(DataSet: TDataSet;
      var Accept: Boolean);
    var
      Cond1, Cond2: Boolean;
    begin
      with DataSet do
      begin
        Cond1 := (FieldByName('DATE_FACT').AsDateTime <= DateTimePicker1.Date) and
                 (FieldByName('REGLE_LE').IsNull);
        Cond2 := (FieldByName('REGLE_LE').AsDateTime > DateTimePicker1.Date) and
                 (FieldByName('PCENT_TVA').AsFloat = 0);
      end;
      Accept := Cond1 or Cond2;
    end;
    @+ Claudius
    Bonjour Claudius,
    Non , je n'avais pas pensé à cette solution car jamais utilisée mais cela fonctionne .j'ai adapté les AND pour mes conditiond et j'obtiens mon report imprimé ensuite. il me reste à vérifier les résultats.
    Par contre lorsque je quitte j'ai un plantage avec le message suivant; Le projet... a provoqué une classe d'execption Edatabase Error avec le message 'ADOTABLE1: enregistrement non trouvé". Je pense qu'il est après la fin de la table. Je vais jeté un oeil.
    Je mets le bout de code qui fonctionne

    procedure TForm2.ADOTable1FilterRecord(DataSet: TDataSet;
    var Accept: Boolean);

    var Cond1, Cond2: Boolean;
    begin
    with DataSet do

    begin
    Cond1 := (FieldByName('DATE_FACT').AsDateTime <= DateTimePicker1.Date) and
    (FieldByName('REGLE_LE').IsNull) and (FieldByName('PCENT_TVA').AsFloat = 0) ;
    Cond2 := (FieldByName('DATE_FACT').AsDateTime <= DateTimePicker1.Date) and
    (FieldByName('REGLE_LE').AsDateTime > DateTimePicker1.Date) and
    (FieldByName('PCENT_TVA').AsFloat = 0);
    end;
    Accept := Cond1 or Cond2;
    end;

    Encore MERCI
    Cordialement
    Alain

  14. #14
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    @bzh56
    pour mettre en évidence votre code.

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

Discussions similaires

  1. Erreur de syntax sur JOIN
    Par helje dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/03/2006, 17h36
  2. message d'erreur sur test module
    Par Daniel MOREAU dans le forum Access
    Réponses: 5
    Dernier message: 23/11/2005, 20h19
  3. [Mail] *PHP* |Variables| Mauvaise syntaxe
    Par jilibi dans le forum Langage
    Réponses: 18
    Dernier message: 15/11/2005, 18h16
  4. Erreur de syntaxe sur la création d'une vue.
    Par cgougeon dans le forum Installation
    Réponses: 3
    Dernier message: 09/09/2005, 11h00
  5. Pblme simple de requete ! (mauvaise syntaxe)
    Par ju360modena dans le forum ASP
    Réponses: 12
    Dernier message: 10/06/2005, 10h22

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