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 :

insensible a la case


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut insensible a la case
    bonjours a tous,

    J'aimerai savoir comment faire pour rendre une procedure de recherche dans une table de données insensible a la casse.

    Est ce possible ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TForm2.rechercheClick(Sender: TObject);
    var Option : TLocateOptions;
    begin
     
     if RechercheNomEdit.Text <> '' then
      begin
           Option := [loPartialKey];
          Table.Locate('Nom',RechercheNomEdit.Text,Option);
      end;
    Je pensais pourtant que [loPatialKey] rendais insensible a la casse mais ça ne fonctionnement pas.

    merci pour votre aide

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut,

    Le paramètre Option de la fonction Locate est une combinaison de 2 valeurs possibles: loPartialKey et loCaseInsensitive.
    La valeur qui t'intéresse est loCaseInsensitive.

    Mais tu aurais pu aussi faire et regarder le typeTLocateOptions !

    @+

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut
    Oupsss Désoler, c'est pas la bonne source que j'ai mis
    Mon problème est sur ce code ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TForm2.FiltreNomChange(Sender: TObject);
    var Filtre : string;
     
    begin
            Filtre := 'Nom =''' + FiltreNom.Text + '*''';
                  if FiltreNom.Text =''  then
                        begin
                               Table.Filtered:=false;
             exit;
      end;
           Table.Filter := Filtre;
                   Table.Filtered := true;
     
      end;
    J'ai tenter de mettre l'option loCaseinsensitive comme pour le code du mon premier post mais dans ce cas il m'est impossible de saisir quoi que ce soit dans la cellule.

    Désoler pour l'erreur de code source

    Méa Culpa

  4. #4
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut,

    Personellement je préfère passer par l'évènement OnFilterRecord. Je trouve son utilisation plus souple que la définition de la propriété Filter.

    Je vais donc supposé que tu travailles avec un TQuery.
    Implémente donc l'évenement OnFilterRecord de ton TQuery comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm2.Query1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
    begin
      Accept := UpperCase(Query1NOM.AsString) = UpperCase(FiltreNom.Text);
    end;
    Ainsi ta procédure devient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm2.FiltreNomChange(Sender: TObject);
    begin
      Query1.Filtered := (FiltreNom.Text <> '');
    end;
    @+

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 420
    Points : 116
    Points
    116
    Par défaut
    Merci pour ton aide c'est sympa

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/02/2014, 16h16
  2. Requete insensible à la case
    Par ceweb dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/11/2008, 19h54
  3. [String] rendre une expression reguliere insensible à la case
    Par chimical dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 07/05/2004, 11h38
  4. Réponses: 6
    Dernier message: 26/01/2003, 13h45
  5. case sensible
    Par zdra dans le forum C++Builder
    Réponses: 2
    Dernier message: 29/11/2002, 20h15

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