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 par FindKey


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Par défaut Recherche par FindKey
    FindKey permet la recherche par un champ indexé, si l'on indexé à l'aide de l'index 'Num'
    Table1.FindKey([Edit1.Text]) cherchera l'enregistrement dont la valeur contenu dans le champs Num est egale à Edit1.Text.

    Bon soir a tous. j'ai trouvé un problème dés ma réalisation d'une recherche avec FindNearest dans un table Table1, j'ai essayer en delphi le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure TForm6.Button1Click(Sender: TObject);
    begin
    table1.IndexName:='num_imat';
    if not table1.FindKey([edit1.Text]) then
    showmessage('Non trouvé!')
    else
    begin
    label1.Caption:=table1.FieldByName('nom').AsString;
    label2.Caption:=table1.FieldByName('prénom').AsString;
    end;
     
    end;
    Donc ma question est si quelqu'un qui veut m'aide de refaire ce code en c++, et Merci tout d'abord!!
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut infomaNss
    ca devrait donner quelque chose comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    Table1->IndexName = "num_imat";
    if(!Table1->FindKey([edit1->Text]))
    {
    ShowMessage("Non trouvé!");
    }
    else
    {
    Label1->Caption = Table1->FieldByName("nom")->AsString;
    Label2->Caption = Table1->FieldByName("prénom")->AsString;
    }
    }

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 2
    Par défaut
    Slt blondelle
    Merci beaucoup. Mais en c++ builder la fonction FindKey a deux paramètres
    comme suit: FindKey(const TVarRec*,const int). elle ne fonctionne pas avec ([Edit1->Text])
    donc le problème qui se pose comment je vais l'implanter le premier parametre (const TVarRec*)?
    FindKey(????,StrToInt(Edit1->Text))

    et merci tout d'abord a tous.

  4. #4
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Tire de l'aide en ligne BCB
    TTable::FindKey
    Recherche un enregistrement dont les champs contiennent les valeurs spécifiées.
    bool __fastcall FindKey(const System::TVarRec * KeyValues, const int KeyValues_Size);
    Description
    La méthode FindKey permet de rechercher un enregistrement spécifique d'un ensemble de données. KeyValues contient un tableau délimité par des virgules de valeurs de champ, appelé une clé. Chaque valeur de la clé peut représenter un littéral, une variable ou NULL. Si le nombre de valeurs transmises dans KeyValues est inférieur au nombre de colonnes de l'index utilisé pour la recherche, les valeurs manquantes sont supposées être nulles. KeyValues_Size spécifie l'index de la dernière valeur de KeyValues (une de moins que le nombre total de valeurs fournies). Dans l'instruction ci-dessous, la méthode FindKey est utilisée pour trouver la ligne de la table ayant dans le champ index la valeur "'Princess Island SCUBA".
    TVarRec vr = ("Princess Island SCUBA");
    Table1->FindKey(&vr, 0);
    Les valeurs de recherche peuvent être transmises à FindKey en utilisant une construction TVarRec (comme ci-dessus) ou une construction ARRAYOFCONST. L'exemple ci-dessous effectue la même recherche que l'exemple précédent, mais en utilisant ARRAYOFCONST.
    Table1->FindKey(ARRAYOFCONST(("Princess Island SCUBA")));
    Pour les tables Paradox et dBASE, la clé doit toujours être un index, qui peut être spécifié dans la propriété IndexName. Si IndexName est vide, FindKey utilise l'index primaire de la table. Notez que FindKey ne fonctionne pas avec des index d'expression dBASE. Utilisez à la place la méthode GotoKey ou GotoNearest.
    Pour les tables SQL, la clé peut correspondre à un index spécifié dans IndexName ou à une liste de noms de champ dans la propriété IndexFieldNames.
    Si la recherche réussit, FindKey positionne le curseur sur l'enregistrement correspondant et renvoie true. Sinon, le curseur n'est pas déplacé et FindKey renvoie false.
    TTable::FindNearest
    Déplace le curseur sur l'enregistrement le plus proche d'un ensemble spécifié de valeurs clé.
    void __fastcall FindNearest(const System::TVarRec * KeyValues, const int KeyValues_Size);
    Description
    La méthode FindNearest permet de déplacer le curseur sur un enregistrement spécifique d'un ensemble de données ou sur le premier enregistrement de l'ensemble de données contenant des valeurs supérieures à celles spécifiées dans le paramètre KeyValues. KeyValues contient un tableau délimité par des virgules de valeurs de champ, appelé une clé. Chaque valeur de la clé peut représenter un littéral, une variable ou NULL. Si le nombre de valeurs transmises dans KeyValues est inférieur au nombre de colonnes de l'index utilisé pour la recherche, les valeurs manquantes sont supposées être nulles. KeyValues_Size spécifie l'index de la dernière valeur de KeyValues (une de moins que le nombre total de valeurs fournies). Dans l'instruction ci-dessous, la méthode FindKey est utilisée pour trouver la ligne de la table ayant dans le champ index la valeur "'Princess Island SCUBA".
    TVarRec vr = ("Princess Island SCUBA");
    Table1->FindNearest(&vr, 0);
    Les valeurs de recherche peuvent être transmises à FindNearest en utilisant une construction TVarRec (comme ci-dessus) ou une construction ARRAYOFCONST. L'exemple ci-dessous effectue la même recherche que l'exemple précédent, mais en utilisant ARRAYOFCONST.
    Table1->FindNearest(ARRAYOFCONST(("Princess Island SCUBA")));
    Pour les tables Paradox et dBASE, la clé doit toujours être un index, qui peut être spécifié dans la propriété IndexName. Si IndexName est vide, FindNearest utilise l'index primaire de la table. Notez que FindKey ne fonctionne pas avec des index d'expression dBASE. Utilisez à la place la méthode GotoKey ou GotoNearest.
    Pour les tables SQL, la clé peut correspondre à un index spécifié dans IndexName ou à une liste de noms de champ dans la propriété IndexFieldNames.
    FindNearest positionne le curseur sur l'enregistrement correspondant exactement ou sur le premier enregistrement dont les valeurs sont supérieures à celles spécifiées dans le critère de recherche. Si aucun enregistrement ne contient de valeurs supérieures ou égales aux critères spécifiés, FindNearest positionne le curseur sur le dernier enregistrement de la table. KeyExclusive affecte également les conditions de limite d'intervalle et l'enregistrement sélectionné par FindNearest.
    j'essairai ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Table1->FindKey(ARRAYOFCONST((edit1->Text)));

Discussions similaires

  1. Recherche par une partie du champ
    Par safadev dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/10/2005, 14h20
  2. recherche par mot clé
    Par seb59dk dans le forum Access
    Réponses: 3
    Dernier message: 06/09/2005, 14h26
  3. Recherche par mots clés
    Par legillou dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 17/06/2005, 10h56
  4. Probleme de recherche par listbox
    Par haigwepa dans le forum IHM
    Réponses: 6
    Dernier message: 12/10/2004, 19h57
  5. Moteur de recherche par date
    Par Prue dans le forum ASP
    Réponses: 17
    Dernier message: 27/08/2003, 16h07

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