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 :

Requête sur plusieurs champs


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 479
    Points : 102
    Points
    102
    Par défaut Requête sur plusieurs champs
    bonjour

    J'ai une requete ci dessous sur un champ et je voudrais que la recherche s'effectue sur 2 champs Titre et Contenu comment faire je débute en sql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    datamodule2.Query2.SQL.Clear;
    datamodule2.Query2.SQL.Text:='SELECT * FROM "invcassettes.DB" CassCds WHERE UPPER (Titre) LIKE ' + uppercase (quotedStr('%'+Edit3.Text+'%'));
          datamodule2.Query2.Open;

    Merci d'avance

  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
    Simplement en ajoutant un And avec ton nouveau critère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    With datamodule2.Query2 do
    begin
      SQL.Clear;
      SQL.Add('SELECT * FROM "invcassettes.DB" CassCds');
      SQL.Add('WHERE UPPER (Titre) LIKE ' + uppercase (quotedStr('%'+Edit3.Text+'%'));
      SQL.Add('AND Contenu = ' + MaValeurDeRecherche);
      Open;
    end;
    Je te conseil d'utiliser les ADD plutot que le Text car quand il y a une erreur de SQL, souvent il te donne le numéro de la ligne où il y a l'erreur (chose impossible avec Text car c'est sur une seule ligne) et c'est largement plus lisible que sur une seule ligne.
    Modérateur Delphi

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

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 479
    Points : 102
    Points
    102
    Par défaut
    Merci

    Qu'entends tu par mavaleurderecherche dans mon cas c'est la même chose que ma premiere recherche si c'est bien de ça que tu parle
    ce qui me donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datamodule2.Query2.SQL.add('AND Contenu = ' + quotedstr('%'+Edit3.Text+'%'));

    Si J'ai bien compris et la ça ne marche pas

  4. #4
    Membre éclairé Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Points : 717
    Points
    717
    Par défaut
    Salut,

    Oui, tu met la même condition si tes deux champs de recherche ont la même valeur. Mais tu peux aussi faire des tris sur des valeurs différentes (avec deux edits).

    Si maintenant tu recherches dans ta base toutes les oeuvres qui ont pour titre OU pour contenu le terme saisit par l'utilisateur dans ton Edit, je pense qu'il faut que tu emploit un OR.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datamodule2.Query2.SQL.add('OR UPPER(Contenu) = ' + uppercase(quotedstr('%'+Edit3.Text+'%')));
    Et si tu as vraiment du mal avec SQL, je te conseille de lire les bases, par exemple ici sur la partie manipulation de données notamment (fonction importante à connaître pour débuter: inner join, where et les booléens, order by, update, insert delete, et cela peut être très utilile de savoir manipuler les vues également.)

    Voilà,

    A+.
    For crying out loud !

Discussions similaires

  1. Requête sur plusieurs champs
    Par Crudelix dans le forum Requêtes
    Réponses: 4
    Dernier message: 19/07/2010, 16h12
  2. Requête sur plusieurs champs tout en comptant!
    Par TekFanatiX dans le forum Langage SQL
    Réponses: 11
    Dernier message: 08/12/2008, 09h59
  3. Comment créer une sous requête sur plusieurs champs?
    Par Anonymouse dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 10/06/2008, 09h13
  4. Requête sur plusieurs champs avec LIKE
    Par zestrellita dans le forum Langage SQL
    Réponses: 4
    Dernier message: 23/04/2007, 14h58
  5. Requête sur plusieurs champs
    Par pierrot67 dans le forum Bases de données
    Réponses: 6
    Dernier message: 21/02/2007, 10h51

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