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 :

[Thread] Recherche dans une BDD


Sujet :

Bases de données Delphi

  1. #1
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut [Thread] Recherche dans une BDD
    Salut à tous
    Je voudrais mettre une recherche dans une BDD dans un thread et je voudrais savoir quelques trucs:
    - J'utilise des composants (KaDao et VCL standard) qui sont sur la form qui lance la recherche. Je voudrais savoir:si je lance un thread qui utilise ces composants pour faire la recherche, est-ce que ça bloque quand même la form?
    - Est-ce qu'avec les recherches dans la BDD (Find_First et Find_Next) je dois mettre des synchonize?
    Merci d'avance
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut Re: [Thread] Recherche dans une BDD
    Citation Envoyé par Pedro204
    - J'utilise des composants (KaDao et VCL standard) qui sont sur la form qui lance la recherche.
    Quels composants VCL, stp ? Tu comprendras bien qu'un TDBGrid n'est pas tout à fait la même chose qu'un TSocket ou un TEdit... ;-)

    Citation Envoyé par Pedro204
    Je voudrais savoir:si je lance un thread qui utilise ces composants pour faire la recherche, est-ce que ça bloque quand même la form?
    Ca bloque la form à coup sûr si l'action sur un composant déclenche un gestionnaire d'évènement, ou si une action sur un contrôle de ta form peut entrer en conflit avec les actions d'un autre thread. Il faut bien sûr faire attention à ne commencer le traitement du thread qu'après être sorti du gestionnaire d'évènement qui a servi à le créer, mais ça, je suppose que c'est déjà fait (et puis tu peux faire un Synchronize avant la boucle principale du Execute, si besoin est).

    Typiquement : si tu as deux threads, deux TEdit "ReadOnly" et AUCUN gestionnaire pour les TEdit, alors chaque thread peut taper dans "son" TEdit sans utiliser Synchronize.
    Si par contre ils tapent dans le même contrôle (ex : un TCheckBoxList) OU qu'il existe un gestionnaire d'évènement, alors Synchronize est obligatoire.
    Si tes composants ne sont sur la fiche que parcequ'il faut bien les poser quelque part (ex : des composants dont on n'utilise que rarement les évènements, comme les boîtes de dialogue), alors tu t'en fiches. Cependant, il vaudrait mieux les instancier "manuellement" dans ton thread si tu veux avoir la paix...

    Citation Envoyé par Pedro204
    - Est-ce qu'avec les recherches dans la BDD (Find_First et Find_Next) je dois mettre des synchonize?
    Je n'en sais rien pour la BDD elle-même, mais côté form :
    - Tu ne stockes pas les données obtenues sur le TForm => tu peux y aller sans Synchronize et comme un bourrin.
    - Tu stockes les données sur le TForm (ex: dans un TStringGrid, un TMemo, etc...) : même contrainte que l'exemple ci-dessus avec les TEdit.
    => Ton thread est le SEUL et UNIQUE thread à pouvoir accéder à ce composant, qui n'a AUCUN gestionnaire d'évènement associé : pas de synchro.
    => Dans tous les autres cas, la synchro est obligatoire.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  3. #3
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Merci Mac LAK
    Les composants que j'utilise ne sont que des KaDao ... TKadaoEngine, TKaDaoDataSource, TKaDaoTable...
    Je n'ai trouvé que ces composants pour utiliser Access correctement....
    J'ai trouvé ça aussi... Je vais le potasser...
    Merci encore
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Bon, désolé de ne pouvoir t'aider plus... Tu devrais demander à déplacer le topic dans "Delphi & Bases de données", ça devrait certainement mieux marcher pour ta réponse...

    Par contre, ce que je t'ai dit par rapport aux composants utilisables sans Synchronize est toujours vrai, c'est lié à des notions d'interblocage. Après, faut savoir si tes composants KaDao "planquent" des trucs (genre thread, évènements cachés, etc...), c'est tout.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

Discussions similaires

  1. [MySQL] PHP script pour recherche dans une bdd mysql
    Par stone144 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/12/2010, 13h06
  2. Recherche dans une BDD - Affichage
    Par lifeislife dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 13/09/2010, 17h54
  3. Recherche dans une BDD : gestion des doublons ?
    Par remy77 dans le forum kettle/PDI
    Réponses: 5
    Dernier message: 26/05/2009, 01h07
  4. Recherche dans une BdD
    Par chlebta*tsotsi dans le forum Bases de données
    Réponses: 19
    Dernier message: 02/05/2009, 10h41
  5. Recherche dans une BDD
    Par tleboukaka dans le forum Bases de données
    Réponses: 1
    Dernier message: 21/02/2007, 09h16

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