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

Delphi Discussion :

Requête sql si la clause where est vide


Sujet :

Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2013
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 212
    Points : 81
    Points
    81
    Par défaut Requête sql si la clause where est vide
    Bonsoir a tous ,
    J'ai utilisé Delphi +Sql servr 2008 , je voulais faire une simple requette sur une table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    query.sql.add('select * from personnels where Matricule= :a');
    query.paramaters.parambyname('a').value:=edit1.text;
    query.open;
    Vous voyez que j'ai utilisé la clause where ., donc je veux même si le edit1 est vide , la requette ignore la condition et me donne toutes les données . et aussi ou cas ou il yas deux condition et deux edit ?
    et Merci d'avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Rien de plus simple mais aussi plusieurs solutions dépendant des composants utilisés, je pense, hélas pour moi, ail s'agit de ADO

    solutions "brut" de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    query.active:=False;
    Query.sql.Clear;
    query.sql.add('select * from personnels');
    if Trim(Edit1.text)<>'' then 
     begin
      query.sql.add('where Matricule= :a');
      query.paramaters.parambyname('a').value:=edit1.text;
     end;
    query.open;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var clause,colonne,valeur : String;
    const SQLfmt = 'SELECT * FROM PERSONNELS WHERE %s=%s';      
    ...
    query.active:=False;
    colonne:='1';
    valeur:='1';
    if Trim(Edit1.text)<>'' then 
     begin
      colonne:='Matricule';
      valeur:=QuotedStr(Edit1.text);
     end;
    query.SQL.Text:=Format(SQLFmt,[colonne,valeur]);  
    query.open;


    Solution Firedac, utilisation des macros
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    FDQuery.Active:=False;
    FDQuery.SQL.Text:='SELECT * FROM personnels &where';
    if Trim(Edit1.text)<>'' then begin
      FDQuery.MacrobyName('where').asRaw:='WHERE Matricule=:a';
      FDQuery.Parambyname('a').asString:=edit1.text;
    end
    else FDQuery.MacrobyName('where').Clear;
    FDQuery.Active:=True;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

Discussions similaires

  1. [SQL] Requête sql où la condition where ne sert pas
    Par gRaNdLeMuRieN dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 16/05/2007, 09h26
  2. [SQL]Action sur clause where
    Par J_Yohan dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 03/04/2007, 10h55
  3. [SQL] affecter la valeur SQL NULL si la variable est vide
    Par marie4449 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 28/03/2007, 18h44
  4. [T-SQL]Tester si un blob est vide
    Par plochert dans le forum Sybase
    Réponses: 1
    Dernier message: 01/12/2006, 12h03
  5. Requête sql dans une clause Where
    Par PrinceMaster77 dans le forum Requêtes
    Réponses: 5
    Dernier message: 26/07/2006, 11h30

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