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

C++Builder Discussion :

TADOTable et filtre [FAQ]


Sujet :

C++Builder

  1. #1
    GaL
    GaL est déconnecté
    Membre à l'essai
    Inscrit en
    Juillet 2002
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 24
    Points : 19
    Points
    19
    Par défaut TADOTable et filtre
    Est il possible de faire des filtres partiels (avec le carac *).
    J'essaye depuis deux heure et mon programme se termine anormallment des que j'essaye d'activer le filtre !
    Y'a t'il quelque chose de particulier a faire pour pouvoir faire des filtre avec TADOdataset et descendants?

  2. #2
    GaL
    GaL est déconnecté
    Membre à l'essai
    Inscrit en
    Juillet 2002
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 24
    Points : 19
    Points
    19
    Par défaut Meme un filtre normal...
    Meme avec un filtre "normal" mon programme se termine j'utilise une base de donnees access

    Quelqu'un a t-il une solution ?

  3. #3
    GaL
    GaL est déconnecté
    Membre à l'essai
    Inscrit en
    Juillet 2002
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 24
    Points : 19
    Points
    19
    Par défaut voila mon code au cas ou
    void __fastcall TDVD::FiltreNomChange(TObject *Sender)
    {
    // Procédure qui filtre la base des clients
    AnsiString Filtre;
    if (FiltreNom->Text.IsEmpty()) // Test si il n'y a rien dans le filtre
    {
    ADOTable1->Filtered=false; // Arrête le filtrage de la table
    return; // quitte la methode
    }
    switch (ComboTri->ItemIndex) {
    case -1 :
    ADOTable1->Filtered=false; // Arrête le filtrage de la table
    return; // quitte la methode

    case 0 :
    Filtre=AnsiString("titre = '")+ FiltreNom->Text + "'";
    break;

    case 1 :
    Filtre =AnsiString("Editeur = '")+ FiltreNom->Text + "'";
    break;

    case 2 :
    Filtre =AnsiString("zone = '")+ FiltreNom->Text + "'";
    break;


    }

    ADOTable1->Filter = Filtre; // Mise en place du filtre
    ADOTable1->Filtered = true; // Activation du filtre


    }

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 109
    Points
    109
    Par défaut
    Bonjour,

    Le filtre est élément SQL standard.
    Pour filtrer une chaine qui commence par "a", tu donnes "a%".
    Regarde la commande SQL Like.

    Pour le reste du code je ne vois pas de probleme.
    ( si les champs existent dans la base bien évidemment ...)
    A ta disposition
    Christophe MERLIER

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 109
    Points
    109
    Par défaut
    Fait attention à enlever le filtre si celui ci change ...

    ->Filtered = false;
    ->Filter = Filter;
    ->Filtered = true;

    ... cela dit pour faire ça, je préfere les Query. C'est toi qui voit.
    A ta disposition
    Christophe MERLIER

  6. #6
    GaL
    GaL est déconnecté
    Membre à l'essai
    Inscrit en
    Juillet 2002
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Meme en faisant un Query ca ne marche pas g l'impression qu'avec ADO on ne peut pas faire de filtre partiel, je n'ai plus l'erreur qui faisait planter mon pg mais quand j'essaye de faire un filtre partiel l'ensemble des donnees resultat est vide.

    Cela peut il venir de la connexion ADO ou alors un filtre partiel est il tout simplement impossible a faire?

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 109
    Points
    109
    Par défaut
    Non on peut faire un filtre avec ADO (ou autre d'ailleurs).
    Si ça ne marche pas avec un Query c'est que le rpobleme est ailleurs.
    Le nom du champ, la données à chercher ...

    As tu vérifié dans la base si les données correspondent ?

    Dixit ton code :
    Tu crées un "Editeur" toto et tu fais Filter = "Editeur = 'toto'" ou alors

    Select * from ta_table where Editeur = 'toto'.
    Si ça ne marche pas vérifie que le champ "Editeur" est bien dans la table
    A ta disposition
    Christophe MERLIER

  8. #8
    GaL
    GaL est déconnecté
    Membre à l'essai
    Inscrit en
    Juillet 2002
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Non y'a pas de probleme je peux chercher dans ma base un editeur mais je n'arrive pas a faire de filtre partiel c'est a dire chercher tous les editeurs qui commence par la lettre a par exemple et ce ni avec un filtre ni avec une query

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 109
    Points
    109
    Par défaut
    à ce moment la la requete est :

    Select * form ta_table where Editeur like %a

    sinon tu vas chercher tous les éditeurs égal à "a"

    regarde LIKE dans l'aide ...
    A ta disposition
    Christophe MERLIER

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 109
    Points
    109
    Par défaut
    excuse moi ...

    SELECT *
    FROM ta_table
    WHERE (Editeur LIKE "A%")

    (dixit la doc du SQL local)
    A ta disposition
    Christophe MERLIER

  11. #11
    GaL
    GaL est déconnecté
    Membre à l'essai
    Inscrit en
    Juillet 2002
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Merci beaucoup pour ton aide, j'ai enfin réussi a faire marcher ma requete par contre pour le filtre c'est une autre histoire.

    Encore merci et j'espere ne pas avoir trop abuse de ton temps personnel !

  12. #12
    GaL
    GaL est déconnecté
    Membre à l'essai
    Inscrit en
    Juillet 2002
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Cela dit je ne comprends pas pourquoi le filtre ne marche pas

  13. #13
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 109
    Points
    109
    Par défaut
    Regarde la doc de Filter :

    Pour filtrer en utilisant des comparaisons partielles, utilisez un astérisque comme caractère générique. Par exemple :

    State = 'M*'
    A ta disposition
    Christophe MERLIER

  14. #14
    GaL
    GaL est déconnecté
    Membre à l'essai
    Inscrit en
    Juillet 2002
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Oui j'ai bien vu g meme deja fait des filtre partiel avec des TTAble mais avec les TADOTable je t'assure que le caractere partiel * ne marche pas...

  15. #15
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 109
    Points
    109
    Par défaut
    Pour finir avec le sujet :

    Sur un TTable (Bde), la syntaxe est :

    Editeur = 'a*'

    Sur un TADOTable, la syntaxe est :

    Editeur like 'a%'

    J'ai essayé et ça filtre (même à la conception d'ailleurs).
    A ta disposition
    Christophe MERLIER

  16. #16
    GaL
    GaL est déconnecté
    Membre à l'essai
    Inscrit en
    Juillet 2002
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Effectivement ca marche
    Merci beaucoup de m'avoir aide
    Je comprends vite mais il faut m'expliquer longtemps...

    Merci beaucoup et encore desole de vous avoir pris tout ce temps

  17. #17
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Mai 2002
    Messages : 84
    Points : 109
    Points
    109
    Par défaut
    De rien, le forum est fait pour ça et ma signature ne ment pas
    A ta disposition
    Christophe MERLIER

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

Discussions similaires

  1. Filtre DirectShow
    Par masterfangorn dans le forum DirectX
    Réponses: 4
    Dernier message: 23/05/2003, 14h57
  2. Algorithme d'un filtre ?
    Par Vince78 dans le forum Algorithmes et structures de données
    Réponses: 17
    Dernier message: 04/09/2002, 15h54
  3. recherche filtre flou gaussien
    Par gimlithedwarf dans le forum Langage
    Réponses: 4
    Dernier message: 01/08/2002, 22h32
  4. Filtre passe Bande
    Par Mau dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 28/06/2002, 17h03
  5. Probleme de filtre dans bdd
    Par scorpiwolf dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/06/2002, 10h43

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