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 :

Recherche contenant des lettres accentuées (Locate)


Sujet :

C++Builder

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Recherche contenant des lettres accentuées (Locate)
    Bonjour,
    J'utilise Borland C++ Builder (BDS 2006) et une DB firebird.
    J'aimerais savoir s'il y a un solution en ce qui concerne la fonction locate lorsque le texte contenu dans la DB contient des lettres accentuées.
    J'ai testé AnsiUpperCase pour convertir ma chaîne mais sans résultat !
    Dans mon cas, il s'agit d'une recherche de doublons (2 tables) - Recherche sur Nom + Prénom.
    Tout se passe super bien sauf si le prénom est par Ex. Stéphane

    Avez-vous une idée ?
    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
     
    TLocateOptions Opts;
    Opts.Clear();
    Opts << loCaseInsensitive;
    Variant locvalues[2];
    bool res;
     
    Query1->Open();
    for(Query1->First();!Query1->Eof;Query1->Next())
    {
    	Query2->Open();
    	for(Query2->First();!Query2->Eof;Query2->Next())
    	{
    		locvalues[0] = Variant(Query2NOM->AsString);
    		locvalues[1] = Variant(Query2PRENOM->AsString);
    		res = Query1->Locate("NOM;PRENOM", VarArrayOf(locvalues, 1), Opts);
    		if(res)
    		{ 
    			/*Traitement du Doublon*/
    		}
    	}
    }
    D'avance merci pour votre aide.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bonjour à tous,
    J'ai pas mal cherché concernant ce problème de recherche sur un mot contenant des lettres accentuées.
    A première vue, le Locate() fonctionne bizarrement.
    J'ai contourné le problème en utilisant un Query auquel je passe des paramètres. En terme de performance rien a dire (rapide).
    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
     
    LocateOptions Opts;
    Opts.Clear();
    Opts << loCaseInsensitive;
     
    Query1->Open();
    for(Query1->First();!Query1->Eof;Query1->Next())
    {
       Query2->Close();
       Query2->Params->Items[0]->Value = Query1NOM->AsString;
       Query2->Params->Items[1]->Value = Query1PRENOM->AsString;
       Query2->Open();
       int i = Query2->RecordCount;
       if(i)
       {
         /*Traitement*/
       }
    }        
    }

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/04/2008, 08h24
  2. Codage des lettres accentuées
    Par namstou3 dans le forum Langage
    Réponses: 16
    Dernier message: 21/11/2007, 18h13
  3. Récupération des lettres accentuées
    Par troumad dans le forum Installation
    Réponses: 5
    Dernier message: 15/11/2005, 21h28
  4. Comment entrer des lettres accentuées sous postgresql ?
    Par Chihuahua dans le forum Requêtes
    Réponses: 11
    Dernier message: 28/08/2003, 08h04
  5. Comment entrer des lettres accentuées sous postgresql ?
    Par Chihuahua dans le forum PostgreSQL
    Réponses: 11
    Dernier message: 28/08/2003, 08h04

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