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 :

propriete filtered


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 139
    Points : 86
    Points
    86
    Par défaut propriete filtered
    Salut,
    j'utilise des filtered pour une selection ds une liste au fur et a mesure qu'on remplit le champs de saisie. Ca marchait tres bien sur paradox jusqu'a ce que j'utilise interbase, maintenant je n'est pas d'erreur a la compilation ms si filtered est a true alors la liste apparait vide.
    if edit1.text = '' then DM1.produit.filtered:=false;
    else
    begin
    DM1.produit.filtered:=true;
    if radio1.Checked=true then DM1.produit.filter := 'pro_ref ='''+uppercase(edit1.text)+'*''';
    if radio2.Checked=true then DM1.produit.filter := 'pro_lib ='''+uppercase(edit1.text)+'*''';
    if radio3.Checked=true then DM1.produit.filter := 'pro_fam ='''+uppercase(edit1.text)+'*''';
    end;
    est ce que quelqu'un aurai une solution?
    merci

  2. #2
    Futur Membre du Club
    Inscrit en
    Mai 2002
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    eh bein mon ami, tu as mal choisi ton outils de filtrage, je te conseil d'abord de changer de politique pour IB, car c'est une archit. Cl/Ser. et non pas comme paradox.
    et la propriété filtered ne marche que sur les DataSet Unidirectionnels ie des ensbl de données non navigables en haut ou en bas.
    moi même je suis victime.
    je te conseil de filtrer avec SQL et je te conseil d'user les IBquery. un petit exemple d'un spin edit d'année entre 2000 et 2010
    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
     
    procedure TSuiv.SpinEdit1Change(Sender: TObject);
    var sit:string;
             i:integer;
    begin
       with DataMod.IBquery do
        begin
               close;
               SQL.Clear;
               SQL.Add('select * FROM table where extract(YEAR from DATE_DEBUT)='+inttostr(SpinEdit1.Value));
               if CheckBox1.Checked then
                       begin
                         SQL.Add('and CODE1='''+CheckBox1.text+'''');
                       end;
               if CheckBox2.Checked then
                       begin
                         SQL.Add('and intit  like'''+CheckBox2.text+'%''');
                       end;
               SQL.Add('order by code1, DATE_DEBUT');
               open;
        end;
        DataMod.IBquery.first;
       DataMod.IBquery.last;
        i:=DataMod.IBquery.RecordCount;
        label1.Caption:='il existe au total selon les filtres:   '+inttostr(i)+'  .....';
    end;
    il n'y a pas de sujets peu intéressants;
    mais il y'a tjs des gens peu intéressés.
    signé le Cinquième As.

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 139
    Points : 86
    Points
    86
    Par défaut
    Merci pour ta reponse mais je n'est pas bien compris..
    J'utilise bien des IBTables, et on m'a dit sur ce forum qu'interbase convenai egalement a des application monoposte ( donc j'ai cree ma base en locale..).
    Si je comprend l'exemple que tu me donne (je me trompe surement mais..) c'est pour classer une liste selon le critere que l'on choisit, non?

    Moi je veux par exemple sur une liste de 5000 produits que qd on saisit la lettre C par exemple, il ne reste afficher que les produits qui commence par la lettre c, puis idem qd on entre la deuxieme lettre....etc.
    Ce que faisait tres bien les query avec filtered.

    Et comme les IBQuery possedent aussi le propriete filtered et filter je me dis que sa doit etre possible, non?
    Et dans le cas contraire comment peut on faire?

    Si ton message repondait effectivement a ma question alors désolé mais je n'est pas tres bien compris.

  4. #4
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 103
    Points : 120
    Points
    120
    Par défaut
    Salut,

    je ne pratique pas Interbase, mais... je constate une petite différence entre votre façon d'ouvrir la recherche

    Citation Envoyé par crocodingo
    if radio1.Checked=true then DM1.produit.filter := 'pro_ref ='''+uppercase(edit1.text)+'*''';
    Citation Envoyé par salimsmaïn
    and intit like'''+CheckBox2.text+'%''');
    la petite différence porte entre % et *

    je ne sais lequel il faut utiliser... mais, par exemple, pour Paradox c'est % et pour access c'est *...

    c'est peut-être pour cela que tu as un ensemble vide...

    @+
    Ce n'est pas parce qu'on pédale dans la semoule, qu'on est sûr de manger du couscous... (anonyme)

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2002
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Ah " je vous ais compris" dit Du Gaule.
    mon ami si tu veux que ça marche pour toi il faut que tu met la prpté de l'IBquery Unidirectionnal par true, mais assure toi de ce qui suit:
    1- ilvaut mieux libérer la principale IBQUERY. et en rajouté une autre(sait on jamias ce qui va ce passé), manipule alors la seconde.
    2- observe longuement ds le help ce qui se passe ds les évnmts de on Filter de l'IBquery.

    pour amenofis IB travail avec SQL dialect 3
    donc il faut utiliser % et non le *.[/list]
    il n'y a pas de sujets peu intéressants;
    mais il y'a tjs des gens peu intéressés.
    signé le Cinquième As.

  6. #6
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 139
    Points : 86
    Points
    86
    Par défaut
    merci je suis plus avancé deja, J'ai regardé dans l'aide ms rien a faire le filtre n'a aucun effet, c surement la synthaxe je sais pas.
    ibquery1.filtered:=true;
    ibquery1.filter := 'cli_nom ='''+uppercase(edit1.text)+'%''';

  7. #7
    Futur Membre du Club
    Inscrit en
    Mai 2002
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    tu sait j'ai une suggestion;
    inverse plutot ces deux instr;
    et sait on jamais
    tu met un IBQUer.Close; en avant et un IBQUer.open; en fin;
    je ne sait pas si tu as entendu déja des Pbs des IBTABLE et la consigne d'user les IBQuery plutot que les IBtable:: peut etre que les IBQUery's soufre d'un Pb Filter aussi.
    il n'y a pas de sujets peu intéressants;
    mais il y'a tjs des gens peu intéressés.
    signé le Cinquième As.

  8. #8
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 139
    Points : 86
    Points
    86
    Par défaut
    J'ai essyé mais le resultat est identique, sa filtre que dalle.
    C'est quoi le probleme des IBtable avec les filtre?

  9. #9
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 139
    Points : 86
    Points
    86
    Par défaut
    bon j'en suis toujours au meme point.
    Si quelqu'un sait pourquoi filtered ne marche pas avec les ibtable/ibquery qu'il me fasse signe.
    Et est ce qu'il y aurai un autre moyen pour filtrer?
    Merci

  10. #10
    Futur Membre du Club
    Inscrit en
    Mai 2002
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    je vais te donner un morceau de code tu dois le décortiquer.
    suis le et tu vas découvrir quelque chose qui pourra je pense t'aider!:
    j'ai supposé avoir un IBQ, un RadioGr de choix d'agence, une table dont il existe un chp COMMUNE et un autre code agence.
    un event FilterRecord sur l'IBQ.
    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
     
     
    procedure Form1.RadioGroup1Click(Sender: TObject);
    begin
         IBQuery1.Filtered:=RadioGroup1.ItemIndex<>4;
    end;
     
    procedure Form1.IBQuery1FilterRecord(DataSet: TDataSet;
      var Accept: Boolean);
    var cm:string[5];
    begin
         if RadioGroup1.ItemIndex=4 then exit;
         cm:=IBQuery1.FieldByName('COMMUNE').asString;
         with TIBQuery.Create(nil) do
         begin
              DataBase:='ta Database';
              SQL.Text:='SELECT * FROM table WHERE CODE=:cm AND AGENCE=:ag';
              Params.ParamByName('cm').asString:=cm;
              case  RadioGroup1.ItemIndex  of
                 0: Params.ParamByName('ag').asString:='821';
                 1: Params.ParamByName('ag').asString:='823';
                 2: Params.ParamByName('ag').asString:='825';
                 3: Params.ParamByName('ag').asString:='826';
              end;
              Open;
              Accept:=not eof;
              Close;
              Free;
         end;
    end;
    bonne chance tu en aura besoin.
    il n'y a pas de sujets peu intéressants;
    mais il y'a tjs des gens peu intéressés.
    signé le Cinquième As.

Discussions similaires

  1. utilisation de la propriete filter avec un recordset
    Par sundjata dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 05/08/2006, 11h09
  2. [VB6] récuperation des propriétés d'un fichier exe
    Par ulrick dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 26/03/2004, 00h08
  3. Proprietes du fichier de base de donnees
    Par Mouse dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/03/2003, 15h14
  4. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/09/2002, 16h37
  5. CFileDialog Filter
    Par Patrick Beaudoin dans le forum MFC
    Réponses: 4
    Dernier message: 07/09/2002, 09h51

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