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 :

Comment faire une recherche sur un contenu s'il existe ou non ?


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Points : 47
    Points
    47
    Par défaut Comment faire une recherche sur un contenu s'il existe ou non ?
    bonjour

    j'au une table matériel (code_mat, nom_mat,dat_mat,.........etc)

    je veux saisie un code dans un edit et je test s'il est existe ou non
    voila ma procédur mais ne fonctionne pas et elle m'affiche rein:

    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.Button1Click(Sender: TObject);
    var
      x,i:integer;
    begin
      x:=strtoint(edit1.Text);
      table.First;
      while table.Eof do 
      begin
        if(table.FieldByName('code_mat').AsInteger<>x) then
          caption:='non';
        else
          caption:='oui'
        table.Next;
      end;
    end;

  2. #2
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 170
    Points
    4 170
    Par défaut
    He bien tel que ton code est écrit, en réalité tu teste si la valeur saisie correspond au dernier enregistrement de la table.

    Pour savoir si la valeur existe dans la table, il faut soit faire une requête, soit faire un Locate (ou lookup), soit faire un FindKey.

    La solution a utiliser dépend de ton cas de figure.

    Par exemple avec un locate, ça donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
      x : integer;
    begin
      x := strtoint(edit1.Text);
     
      if table.Locate('code_mat', x, [])
      then caption := 'oui'
      else caption := 'non';
     
    end;

  3. #3
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Points : 47
    Points
    47
    Par défaut
    BONJOUR

    il m'affiche toujour une erreur et apés caption:='Non'

    Remarque ma table est (ADOconnection)

  4. #4
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 170
    Points
    4 170
    Par défaut
    Et quelle est cette erreur ?

  5. #5
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Points : 47
    Points
    47
    Par défaut
    voila:

    [IMG]C:\Documents and Settings\YACINE\Bureau\sans titre.btmap[/IMG]

  6. #6
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 170
    Points
    4 170
    Par défaut
    Désolé mais l'image n'est pas passée. Il faut l'insérer en pièce jointe.

  7. #7
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Points : 47
    Points
    47
    Par défaut désolé
    voila l'erreur:

    le projet projet1.exe a provoqué une classe d'eception EDdatabaseeorror avec le mesage 'table'champ(code_mat)' non trouvé

    merci

  8. #8
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 170
    Points
    4 170
    Par défaut
    Dans ce cas, ça signifie que ton champ ne doit pas s'appeler 'code_mat' dans la table...

    Autre possibilité, tu as utilisé un composant TADOTable pour accéder à la table. En design dans l'IDE, tu as fait créer les composants TField de certains champs de la table, mais pas celui du champ 'code_mat'. Si c'est le cas, le composant TADOTable ne voit pas le champ 'code_mat'.

    Dans tous les cas, tu aurais déjà dû avoir le problème avec ton FieldByName du départ !

  9. #9
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 148
    Points : 47
    Points
    47
    Par défaut
    je vous remerci boko

    l'erreur est bête,
    car j'ai déclaré table name est agent et j'ai utilisé le champ de matériel, c'est ça le probléme

    merci pour votre aide

Discussions similaires

  1. [PDO] Comment faire une recherche sur plusieurs critères ?
    Par geeka dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 28/05/2015, 10h19
  2. [1.x] Comment faire une recherche sur plusieurs tables
    Par farhaenis dans le forum Symfony
    Réponses: 6
    Dernier message: 01/07/2011, 17h47
  3. Comment faire une recherche sur la base de donnée entière
    Par -Fly- dans le forum Sql Developer
    Réponses: 2
    Dernier message: 27/05/2011, 15h07
  4. Réponses: 1
    Dernier message: 26/05/2010, 17h57
  5. Réponses: 3
    Dernier message: 11/10/2008, 13h32

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