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 :

pour ne pas répéter where plusieurs fois


Sujet :

Bases de données Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 61
    Points : 28
    Points
    28
    Par défaut pour ne pas répéter where plusieurs fois
    Bonjour TLM

    pour une table qui contient des données je veux affecté a mes variables des résultats de requêtes alors que pour chaque requête je veux pas répeter la condition avec Where puisque c'est la même pour chaque requête, je fais deux select et je sais que ca marche pas mais je vais vous données mon code pour mieux comprendre.

    PS : je tire des données en bouclant sur query1

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
            [size=7] 
             nv := query1.FieldByName('EXNV').AsString;
             orig := query1.FieldByName('EXORIG').AsString;
             dest := query1.FieldByName('EXDEST').AsString;
             query2.Close  ;
             query2.sql.clear;
             query2.sql.Add('Select count(*) As valmvt From  EXPL');
             query2.sql.Add('Select SUM(SUMV) As offre From EXPL');
             query2.sql.Add('Where EXDAT>=(:dat_d) and EXDAT<=(:dat_f) and EXNV=(:numv) and EXORIG=(:org) and EXDEST=(:dst) ') ;
     
             If (vrso <> '') Then  Begin
                                   query2.sql.add(' and EXRSO=(:z) ');
                                   query2.ParamByName('z').AsString := vrso;
                                   End;
             If (vrsd <> '') Then  Begin
                                   query2.sql.add(' and EXRSD=(:t) ');
                                   query2.ParamByName('t').AsString := vrsd;
                                   End;
             If (vtyp <> '') Then  Begin
                                   query2.sql.add(' and EXTYP=(:n) ');
                                   query2.ParamByName('n').AsString := vtyp;
                                   End;
             If (vav <> '') Then  Begin
                                  query2.sql.add(' and EXEQ=(:o) ');
                                  query2.ParamByName('o').AsString := vav;
                                  End;
             query2.ParamByName('dat_d').AsDateTime := strtodate(datd);
             query2.ParamByName('dat_f').AsDateTime := strtodate(datf);
             query2.ParamByName('numv').AsString := nv;
             query2.ParamByName('org').AsString := orig;
             query2.ParamByName('dst').AsString := dest;
             query2.Active := True;
             mvt := Query2.Fieldbyname('valmvt').AsInteger;
             ofr := Query2.Fieldbyname('offre').AsInteger;
             datamodule2.Tetatsperchgtnvol.Insert;
             datamodule2.TetatsperchgtnvolNVOL.Value := nv;
             datamodule2.TetatsperchgtnvolORIG.Value := orig;
             datamodule2.TetatsperchgtnvolDEST.Value := dest;
             datamodule2.TetatsperchgtnvolMVT.Value := mvt;
             datamodule2.TetatsperchgtnvolOFFRE.Value := ofr
    ;[/size]

  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
    Tu as pas le choix il faut que tu fasses 2 requetes séparée. Le mieux tu crées une fonction qui retourne ton Where calculé.
    Modérateur Delphi

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

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 61
    Points : 28
    Points
    28
    Par défaut
    Bon s'il faut deux requêtes séparée je doit le faire, puisque j'ai pas le choix comme tu m'a dit

    merci en tous les cas

Discussions similaires

  1. Réponses: 20
    Dernier message: 08/04/2011, 20h48
  2. Réponses: 3
    Dernier message: 21/06/2010, 22h17
  3. (background-image) comment faire pour ne pas répéter l'image
    Par chakan dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 10/04/2008, 11h33
  4. [Requete] Erreur pour une requête créée en plusieurs fois
    Par soforever dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 09/05/2007, 16h30

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