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 :

filtrer une base de donnée


Sujet :

Delphi

  1. #1
    Membre régulier Avatar de youhibadelphi
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Juin 2009
    Messages : 240
    Points : 108
    Points
    108
    Par défaut filtrer une base de donnée
    Salut
    Je cherche filtrer une colonne des noms d'une base de données avec un edit, mais la base de données se filtre avec la saisie des lettres
    Dbase delphi5.
    Merci

  2. #2
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut


    pourrais-tu être un petit peu plus explicite?

  3. #3
    Membre régulier Avatar de youhibadelphi
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Juin 2009
    Messages : 240
    Points : 108
    Points
    108
    Par défaut
    Salut
    Oui je cherche filtré la colonne des noms de ma base de donnée de la manière suivante
    Quand j'écris dans l'edit la première lettre le filtre s'active c'est à dire quand j'écris la lettre 'A' par exemple dans mon dbgrid s'affiche tous les noms commence par 'A', ainsi de suite quand j'écris la deuxième lettre 'Ab' par exemple dans mon dbgrid s'affiche tous les noms commence par 'Ab' ....
    Merci pour votre aide.

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 266
    Points : 41 663
    Points
    41 663
    Billets dans le blog
    64
    Par défaut
    une query du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM TABLE WHERE CHAMP STARTING WITH :DEBUT
    ou le paramètre début est changé dans le onkeypress du dbedit1

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2009
    Messages : 65
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par youhibadelphi Voir le message
    Salut
    Je cherche filtrer une colonne des noms d'une base de données avec un edit, mais la base de données se filtre avec la saisie des lettres
    Dbase delphi5.
    Merci
    c'est dans l'évènement on_change de l'edit tu tape ton code
    a plus

  6. #6
    Membre régulier Avatar de youhibadelphi
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Juin 2009
    Messages : 240
    Points : 108
    Points
    108
    Par défaut
    salut
    SergioMaster
    je ne cherche pas une solution qury, j'aimerais bien un code delphi.

  7. #7
    Membre régulier Avatar de youhibadelphi
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Juin 2009
    Messages : 240
    Points : 108
    Points
    108
    Par défaut
    salut
    ghilo
    J’ai utilisé ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Var filtre:string;
    Begin
    Filtre:='nom=''+edit2.text+'*''';
    table1.filter:=filtre;
    table1.filtered:=true;
    Pour filtré les enregistrements par nom, mais rien ne s'affiche dans le dbgrid après la saisie de la première lettre (le dbgrid devient vide.
    J’ai essayé ce code dans un petit exemple ça marche bien, mais ça ne marche pas dans mon projets..Pourquoi??
    merci mes amis.

  8. #8
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    Normalement une DBGrid est reliée à une table ou à une requête.
    Pour modifier les résultats d'affichage de ta DBGRID en fonction d'un filtre il est donc logique de modifier une requête.

  9. #9
    Membre régulier Avatar de youhibadelphi
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Juin 2009
    Messages : 240
    Points : 108
    Points
    108
    Par défaut
    Salut
    Philnex
    Je te comprends mais je cherche une réponse à mon problème.
    Merci

  10. #10
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 266
    Points : 41 663
    Points
    41 663
    Billets dans le blog
    64
    Par défaut
    Citation Envoyé par youhibadelphi Voir le message
    je ne cherche pas une solution qury, j'aimerais bien un code delphi.
    En quoi une query ne peut pas être une solution delphi ! j'aurais écrit ce code cela aurait-il changé la face du monde ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Query.Active:=False;
    // commenté car pouvant être partie de la query
    //Query.SQL.Clear;
    //Query.SQL.Add('SELECT * FROM TABLE WHERE CHAMP STARTING WITH :DEBUT');
    Query.ParamByName('DEBUT').asString:=QuotedStr(Edit1.Text);
    Query.Active:=True;
    Ce qu'il faut c'est apprendre à utiliser les Query et leurs paramètres plutôt que cette (censuré) de Filtre . Une simple comparaison de performances suffit à convaincre les plus têtus



    PS c'est plutôt dans l'évenement onchange comme Ghilo l'a indiqué qu'il faudrait le faire (je l'avais oublié celui là)

  11. #11
    Membre régulier Avatar de youhibadelphi
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Juin 2009
    Messages : 240
    Points : 108
    Points
    108
    Par défaut
    salut
    SergioMaster
    merci pour le code
    merci bien

  12. #12
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 206
    Points : 143
    Points
    143
    Par défaut
    onEditChange

    begib
    Table1.Filtered:=True;
    Table1.Filter:='Nom='''+Edit1.Text+'*''';
    end;

  13. #13
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    Citation Envoyé par MIWAN Voir le message
    onEditChange

    begib
    Table1.Filtered:=True;
    Table1.Filter:='Nom='''+Edit1.Text+'*''';
    end;
    j'aime cette nouvelle instruction

  14. #14
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 206
    Points : 143
    Points
    143
    Par défaut
    Citation Envoyé par MIWAN Voir le message
    onEditChange

    begin
    Table1.Filtered:=True;
    Table1.Filter:='Nom='''+Edit1.Text+'*''';
    end;
    faute de frappe


  15. #15
    Membre régulier Avatar de youhibadelphi
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Juin 2009
    Messages : 240
    Points : 108
    Points
    108
    Par défaut
    salut MIWAN
    oui c'est la solution que j'ai utilisé, mais le dbgrid s'affiche vide aprés l'utilisation du filtre, je ne sais pas pourquoi?
    merci

  16. #16
    Membre régulier Avatar de youhibadelphi
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Juin 2009
    Messages : 240
    Points : 108
    Points
    108
    Par défaut
    ahhh j'ai oublié MIWAN
    je te donne co,seil de mettre les code delphi entre les balises[code]..

  17. #17
    Membre éclairé Avatar de Kaféine
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 569
    Points : 736
    Points
    736
    Par défaut
    Salut

    Citation Envoyé par SergioMaster
    Ce qu'il faut c'est apprendre à utiliser les Query et leurs paramètres plutôt que cette (censuré) de Filtre . Une simple comparaison de performances suffit à convaincre les plus têtus
    j'ai du mal à avec cette affirmation...n'est il pas plus performant de charger une fois pour toutes les données de la DB (la query en l'occurence) et ensuite de filtrer en mémoire plutôt que de re-requêter à chaque fois?

  18. #18
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 266
    Points : 41 663
    Points
    41 663
    Billets dans le blog
    64
    Par défaut
    Tout dépend de l'environnement bien sûr . J'ai tendance à voir des applications réseaux et de grosses bases de données (maintenant s'il s'agit d'un carnet d'adresse personnel et d'un mono-poste ....

  19. #19
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 310
    Points
    2 310
    Par défaut
    Citation Envoyé par youhibadelphi Voir le message
    salut MIWAN
    oui c'est la solution que j'ai utilisé, mais le dbgrid s'affiche vide aprés l'utilisation du filtre, je ne sais pas pourquoi?
    merci
    s'affiche vide ne veut pas dire erreur mais veut dire pas d'enregistrements satisfaisant le critère du filtre

  20. #20
    Membre régulier Avatar de youhibadelphi
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Juin 2009
    Messages : 240
    Points : 108
    Points
    108
    Par défaut
    Salut mon ami Just-Soft
    S’affiche vide même si tu saisi la lettre juste.
    Mais j'ai changé la méthode de la recherche.
    Un edit et un bouton.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. filtrer une base de données delphi2009
    Par sarahlareleve dans le forum Débuter
    Réponses: 7
    Dernier message: 16/12/2013, 15h07
  2. Réponses: 5
    Dernier message: 23/11/2010, 23h48
  3. [Strategie][Java][XML] Import dans une base de données
    Par nad dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 23/09/2002, 12h12
  4. [Concept] Stabilité d'une base de donnée
    Par lassmust dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/07/2002, 17h16
  5. associer une base de données(access) a un dbgrid
    Par ange1708 dans le forum MFC
    Réponses: 3
    Dernier message: 11/06/2002, 13h18

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