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 :

Chercher un enreg. dans une table


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 183
    Points : 62
    Points
    62
    Par défaut Chercher un enreg. dans une table
    Bonjour à tous,

    Pour chercher un enreg. dans une table, je fais :

    Valeur := 'AZERTY'
    Table1.Locate ('Champs', Valeur, []);

    Ma question est comment je pourrais trouver les enreg. différents à Valeur ( différents à 'AZERTY') ?

    Merci

  2. #2
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 941
    Points : 1 951
    Points
    1 951
    Par défaut
    En faisant une requête SQL :

    SELECT col FROM MaTable WHERE champ <> 'AZERTY';

  3. #3
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Points : 5 918
    Points
    5 918
    Par défaut
    Bonjour,
    Citation Envoyé par fveto Voir le message
    Pour chercher un enreg. dans une table, je fais :
    Précisez la base de données et le jeu de composants (même si j'en ai déduit qu'il s'agit du BDE ), la réponse n'en sera que plus pertinente...

    Citation Envoyé par fveto Voir le message
    Valeur := 'AZERTY'
    Table1.Locate ('Champs', Valeur, []);

    Ma question est comment je pourrais trouver les enreg. différents à Valeur ( différents à 'AZERTY') ?
    En gardant ce même composant de type TTable (très certainement associé à une grille), on pourrait utiliser un filtre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Table1.Filter := 'Champs <> ''AZERTY''';
    Table1.Filtered := True;
    Cela dit, ce n'est peut-être pas la manière la plus performante de procéder, un composant TQuery et une requête SQL (cf. message de free07) serait plus adaptée.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 62
    Points : 63
    Points
    63
    Par défaut Rechercher une chaine dans une BD
    Ne connaissant pas ta BD j'ai testé sur ADOTable et AdoQuery pour le SQL.
    Il faut modifier le code pour l'adapter à tes besoins.


    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    unit Unit3;
     
    interface
     
    uses
      Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
      Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.DBGrids, Data.DB,
      Data.Win.ADODB, Vcl.StdCtrls;
     
    type
      TForm3 = class(TForm)
        BtnLocate: TButton;
        DataSource1: TDataSource;
        ADOTable1: TADOTable;
        DBGrid1: TDBGrid;
        Edit1: TEdit;
        Label1: TLabel;
        BtnSQL1: TButton;
        ADOQuery1: TADOQuery;
        DataSource2: TDataSource;
        BtnSQL2: TButton;
        Label2: TLabel;
        procedure BtnLocateClick(Sender: TObject);
        procedure BtnSQL1Click(Sender: TObject);
        procedure BtnSQL2Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form3: TForm3;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm3.BtnLocateClick(Sender: TObject);
    begin
       if Edit1.text <> '' then
        Begin
         If (AdoTable1.Locate('Champ1;Champ2',VararrayOf([Edit1.text,Null]),[])=true)then
           ShowMessage('Chaine trouvée') else
           ShowMessage('Chaine non trouvée');
        End;
     
    end;
     
    procedure TForm3.BtnSQL1Click(Sender: TObject);
    begin
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('Select * from TableTest where Champ1 <> ''AZERTY ''');
    try
      ADOQuery1.Open;
    finally
     
    end;
     
    end;
     
    procedure TForm3.BtnSQL2Click(Sender: TObject);
    begin
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('Select * from TableTest where Champ1 = ''AZERTY ''');
    try
      ADOQuery1.Open;
    finally
     
    end;
    end;

  5. #5
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 494
    Points : 3 129
    Points
    3 129
    Par défaut
    On peut aussi utiliser l’événement OnFilterRecord mais c'est franchement "dégueu".

Discussions similaires

  1. insérer enreg. dans une table MySQL à partir de Delphi
    Par fveto dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 06/06/2015, 13h33
  2. Chercher des données dans une Table
    Par olivier45fr dans le forum Access
    Réponses: 5
    Dernier message: 03/05/2011, 15h48
  3. Macro qui va chercher des conditions dans une table
    Par piflechien73 dans le forum VBA Access
    Réponses: 5
    Dernier message: 13/09/2009, 22h29
  4. chercher les éléments d'une table B qui ne sont pas dans la table A
    Par Cupidon dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 11/01/2008, 13h40
  5. Réponses: 2
    Dernier message: 07/12/2007, 15h20

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