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 :

Problème de recherche dans une BD


Sujet :

Bases de données Delphi

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Problème de recherche dans une BD
    Bonjour
    J'utilise la version 5 de delphi et je vous saurai reconnaissant de m'indiquer les instructions à mettre sous un button pour faire une recherche dans une BD constituée d'un champ ayant des enregistrements constitués de mots composés.Exemple: rechercher l'enregistrement ''Direction de l'informatique'' dans la BD "Bureau" sans tenir compte des espaces entre les différents mots

  2. #2
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    Ta question est assez vague, mais bon si j'ai compris.

    Regarde déjà du côté de la méthode locate pour rechercher et localiser un enregistrement dans un ensemble de résultats.

    D'autre part pourquoi tu ne veux pas tenir compte des espaces entre les mots ??

    Cordialement
    Pensez à utiliser les tags dans le titre.
    Avant de poser une question reportez-vous à la FAQ Delphi
    Respectez les règles du forum.

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    je ne veux pas tenir compte des espaces car si j'utilise la fonction findkey il recherche l'enregistrement en tenant compte exactement des espaces.

  4. #4
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    Donc utilise la méthode locate

    En faisant F1 tu pourras lire

    Description

    Appelez Locate pour rechercher un enregistrement spécifique dans un ensemble de données et positionner le curseur dessus.

    KeyFields est une chaîne contenant une liste délimitée par des points-virgules des noms de champ dans lesquels effectuer la recherche.

    KeyValues est un tableau variant contenant les valeurs devant correspondre aux champs clé. Si KeyFields indique un seul champ, KeyValues spécifie la valeur que doit avoir ce champ dans l'enregistrement désiré. Pour spécifier des valeurs de recherche multiples, passez un tableau variant en KeyValues ou construisez un tableau variant à la volée au moyen de la routine VarArrayOf. Par exemple:

    with CustTable do
    Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver', 'P', '408-431-1000']), [loPartialKey]);

    Options est un ensemble facultatif permettant de spécifier des paramètres supplémentaires de recherche dans le cas des champs chaîne. Si Options contient la valeur loCaseInsensitive, Locate ne tient pas compte de la distinction minuscules/majuscules dans la correspondance des champs. Si Options contient la valeur loPartialKey, alors Locate permet une correspondance partielle avec les chaînes de KeyValues. Si Options est un ensemble vide ou s'il n'y a pas de champs chaîne dans la propriété KeyFields, Options n'est pas pris en compte.

    Locate renvoie True si un enregistrement correspondant a été trouvé et fait alors de cet enregistrement, l'enregistrement en cours. Sinon Locate renvoie False.

    Locate utilise la technique la plus rapide possible pour trouver l'enregistrement correspondant. Si les champs de recherche spécifiés dans KeyFields sont indexés et que l'index est compatible avec les options de recherche spécifiées, Locate utilise l'index. Sinon Locate crée un filtre pour effectuer la recherche.
    Pensez à utiliser les tags dans le titre.
    Avant de poser une question reportez-vous à la FAQ Delphi
    Respectez les règles du forum.

  5. #5
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Comme te l'as dit pascal, fais un locate, par contre pense à mettre
    QuotedStr(...), car si ton champs contient des ', ca posera pb!


  6. #6
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci à vous

Discussions similaires

  1. Problème pour rechercher dans une liste excel avec vba
    Par hop51 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 20/03/2013, 19h00
  2. Réponses: 1
    Dernier message: 14/03/2011, 21h36
  3. Problème de recherche dans une table
    Par Asdorve dans le forum Langage SQL
    Réponses: 9
    Dernier message: 20/02/2009, 15h07
  4. problème de recherche dans une base de donnée mysql
    Par Xini28 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 24/10/2005, 18h00
  5. problème de recherche dans une base de données
    Par bouzid_mehdi dans le forum Bases de données
    Réponses: 2
    Dernier message: 19/07/2005, 06h47

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