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 :

Fonction pour rechercher dans une table [Langage/Algorithme]


Sujet :

C++Builder

  1. #41
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Points : 108
    Points
    108
    Par défaut
    Merci en effet, ça marche bien...
    Dernière question, si je veux afficher le résultat dans un DBGrid et pas une listbox comment je peux faire ?

    Si je mets le DataSource1 que j'avais utilisé pour Query1 dans mon nouveau BDgrid, je tombe sur le même DBgrid initial non trié...

    En fait Pottiez m'avait aimablement indiqué la marche à suivre :

    pour cela, il suffit que dans la propriété DataSource de ton nouveau TDBGrid tu indique de TDataSource que tu utilise pour ta connexion à la base de données, ensuite tu fait de même dans ton TQuery et dès que tu vas exécuter une requête dans ton TQuery, ton TDBGrid va se mettre à jour.
    Mais ça marche pas...

    Voici un réapitulatif des composants que j'ai :

    ***Un DBGrid3 qui contient les valeurs de la table , elles ne sont pas triées par ordre alphabetique ici hein.
    - La propriété DataSource ( dans l'inspecteur d'objet ) possède DataSource1

    ***Table1 qui a NouveauTest.db dans TableName

    ***DataSource1 qui a dans DataSet "Table1"

    ***Query1 qui a dans DataSource "DataSource1"


    Voilà après la requête pour le tri par ordre alphanétique j'ai tout qui s'affiche dans une listBox mais je veux le faire dans un autre DBGrid qui s'appelle DBGrid4

    J'ai donc mis DataSource1 dans DBGrid4.

    vous voyez une erreur?





    [/LIST]

  2. #42
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 076
    Points : 1 521
    Points
    1 521
    Billets dans le blog
    5
    Par défaut
    Il faut utiliser un autre datasource pour Query1.
    Il faut mettre un autre composant TDatasource sur la Form (DataSource2) et l'attacher à Query1 (Datasource->dataset=Query1).
    Ensuite il suffit d'affecter à la propriété DataSource du DBGrid DataSource2
    et ça marche tout seul
    Il y a des jours où j'éprouve une haine profonde envers microsoft et Apple c'est pas mieux
    Mon modeste site et mes modestes oeuvres sont
    Rémi

  3. #43
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Points : 108
    Points
    108
    Par défaut
    Je suis CERTAIN de l'avoir fait il y a une heure et ça marchait pas et là je le refais et ça marche, l'informatique par moment...

    Merci en tout cas j'ai tout compris!

  4. #44
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Points : 108
    Points
    108
    Par défaut
    Pour revenir au titre de ce sujet sinon...

    Comment on pourrait faire pour faire une recherche dans la table, sachant que la recherche doit se faire par rapport à ce qu'une personne va mettre dans un TEdit. ça me parait compliqué pour la requête SQL de mettre un Edit->Text par exemple pour qu'il recherche par rapport à ce qu'a rentré l'utilisateur...

    Vu que "Locate" marche pas chez moi sur plusieurs champs... si vous avez des idées pour le faire via une requête SQL faîtes moi signe...
    Thanks

  5. #45
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Points : 713
    Points
    713
    Par défaut
    Citation Envoyé par cedni Voir le message
    Salut

    Ben une simple requete sql avec une clause where

  6. #46
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Points : 108
    Points
    108
    Par défaut
    Ouais la requête ça devrait aller en fait, mais de quelle manière je peux mettre Edit1->Text par exemple dedant... ( après le WHERE donc dans la requete ) , il va comprendre ?

  7. #47
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Citation Envoyé par dekalima Voir le message
    Ouais la requête ça devrait aller en fait, mais de quelle manière je peux mettre Edit1->Text par exemple dedant... ( après le WHERE donc dans la requete ) , il va comprendre ?
    Je n'ai pas suivi toute la discussion, mais pour exécuter une requête SQL SELECT basique c'est tout simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Query1->Active = false ;
    Query1->SQL->Clear() ;
    Query1->SQL->Add( "SELECT champ1, champ2, champ3" );
    Query1->SQL->Add( "FROM NomTable" );
    Query1->SQL->Add( "WHERE champ1 = 10" );
    Query1->SQL->Add( "AND champ2 = " + QuotedStr(Edit1->Text)   );
    Query1->SQL->Add( "AND champ3 like " + QuotedStr( "%" + Edit2->Text + "%" )  );
    Query1->SQL->Add( "ORDER BY champ2" );
    Query1->Active = true;
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  8. #48
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 076
    Points : 1 521
    Points
    1 521
    Billets dans le blog
    5
    Par défaut
    Pas mieux sauf que j'utilise plutôt Query->Close() au lieu de Query1->Active = false ; et Query->Open() au lieu de Query1->Active = true;

    Attention le Query->SQL->Clear() est très important car il vide la requête avant l'écriture d'une nouvelle.
    Il y a des jours où j'éprouve une haine profonde envers microsoft et Apple c'est pas mieux
    Mon modeste site et mes modestes oeuvres sont
    Rémi

  9. #49
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Points : 108
    Points
    108
    Par défaut
    Hum, merci à vous deux mais pour le coup je ne comprends pas trop la requete SQL:

    1/ pourquoi , que signifie le 10 ?
    2/pourquoi il y a deux Edit ( Edit1 et Edit 2 alors que la recherche doit se faire juste par rapport à ce qu'il y a dans un seul TEdit?
    3/Que signifie le "%" ?

    J'aurais plutot vu une requete du style

    SELECT Client,Produit,Expiration,Clef FROM matable WHERE Client AND Produit AND Expiration AND Clef LIKE Form1->Edit2->Text

    Un truc du genre ...

    Merci

  10. #50
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    Ta dernière question me laisse vraiment perplexe quand à ton niveau. Mais nous avons tous été débutant...
    Je te conseil de faire les choses par étapes, et de ne pas vouloir aller trop vite.
    Lorsque l'on programme, les bases sont très importantes, et il ne faut pas les négliger.

    Je te conseil donc de te plonger dans des tutoriels ou cours C++ Builder, ainsi que SQL pour apprendre justement ces bases.
    Recherche via google tout ce que tu ne comprend pas dans la requête,tu trouvera facilement les réponses à tes question. Et ce sera beaucoup plus bénéfique pour toi que si on te donne toute les réponses toute faite...

    Bon courage...

    PS: La requête SQL dans mon précédant post était un exemple purement pédagogique de requête, et ne correspondait pas à ton cas précis.
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  11. #51
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 265
    Points : 108
    Points
    108
    Par défaut
    C'est bon j'ai trouvé et ça marche parfaitement...

  12. #52
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 076
    Points : 1 521
    Points
    1 521
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par dekalima Voir le message

    J'aurais plutot vu une requete du style

    SELECT Client,Produit,Expiration,Clef FROM matable WHERE Client AND Produit AND Expiration AND Clef LIKE Form1->Edit2->Text
    Le SQL c'est comme le C ou le pascal ou le chinois il faut l'apprendre. Ceci dit il suffit d'aller jeter un oeil sur les tutoriel de SQL pour être au parfum.
    Si tu ne fais que des intérogation de table il faut se concentrer la commande SELECT et voire aussi les jointures qui facilitent bien la vie parfois
    Il y a des jours où j'éprouve une haine profonde envers microsoft et Apple c'est pas mieux
    Mon modeste site et mes modestes oeuvres sont
    Rémi

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. (VBA) Fonction de recherche dans une table
    Par cdurep dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/04/2013, 19h02
  2. [XL-2010] Formule : recherche dans une table pour un calendrier
    Par gandalf20000000 dans le forum Conception
    Réponses: 3
    Dernier message: 27/12/2011, 11h42
  3. [MySQL] Recherche dans une table - petit bug affichage multiple pour certaine recherche
    Par runcafre91 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/01/2010, 09h44
  4. Recherche dans une table
    Par Fredo67 dans le forum Access
    Réponses: 2
    Dernier message: 28/02/2006, 17h21
  5. recherche dans une table Access en ASP
    Par D-D dans le forum ASP
    Réponses: 3
    Dernier message: 09/06/2004, 10h12

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