Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : relation 1 plusieurs [ Archives / Bases de données ] (WinLin)

samedi 9 avril 2005 à 12:51:17 | relation 1 plusieurs

WinLin

bonjour a tous,

voila j'ai une table societe et une table refpersonnes
et une table liaisonperssoc

TABLE SOCIETE        table liaison             table personnes
-----------------              --------------              -----------------
index                             INDEX                     index
 nomsoc                        refpers        <--->     refpers
refsoc         <------->    refsoc                       nompers

alors mes relation : j'ai une
relation 1 plusieur pour personnes vers liaisonperssoc
et une
relation 1 plusieur de societe a liaison persoc
car une societe peux avoir plusieur employer et un employer peux etre dans plusieur societe

A )alors mon probleme j'aimerai mettre dans une dblistbox
les societes ou ce trouve un travailleur

B)et mettre les les travailleur d'une societe

A) pour ce faire j'ai penser
     mettre une datasource lier a une query
     et y placer le select suivant
     select nomsoc form liaison,societe where refpers=:formrefpers;
***********
B)
     pour avoir tout les travailleurs d'une societe
     select refpers form liaison,personne where  refsoc=:formrefsoc;


ce je lie ma dblistebox au datasource
le datasource prend en dataset ma query
dans ma query je met la requete ou je faur un query.sql.add(' requeet A ou B');
query.execsql
j'ai deja bien verifier si la query etait active ou pas
mais j'ai toujour riend dans ma dblistbox toujour pas les nom de societe ou autre aucun signe de vie .

Winlin

samedi 9 avril 2005 à 19:31:42 | Re : relation 1 plusieurs

Delphiprog

Administrateur CodeS-SourceS
Réponse acceptée !
Primo : dans le cas d'une instruction SQL select, il faut utiliser query.OPEN et non pas query.execsql (ExecSql ne renvoie pas de curseur).

Deuxio : je ne suis pas sur que tes requêtes renvoient quelque chose.
A)  societes où se trouve un travailleur
/* on recherche les informations de la société et nous utiliserons la table Liaison*/
SELECT S.Refsoc, S.NomSoc FROM Societe S, Liaison L
/* pour laquelle le champ RefSoc est égal à celui de la table Liaison*/
WHERE S.refsoc = L.Refsoc
/* et le champ RefPers de la table liaison est égal à un paramètre variable
que nous puiserons dans la table Personne*/

AND L.RefPers = :Refpers

Il te suffit de déclarer soit le composant TTable ou le composant TQuery connecté à  la table physique Personne comme DataSource de ta requête et la liaison se fera automatiquement.

B) mettre les les travailleurs d'une societe
Il suffirait d'inverser la requête à peu de choses près.
Soit :
/* on recherche les personnes et nous utiliserons la table de liaison */
SELECT P.RefPers, P.NomPers FROM Personnes P, Liaison L
/* dont le champ refPers est égal à celui de la table Liaison*/
WHERE P.RefPers = L.Refpers
/* et dont le champ RefSoc de la table Liaison est égal à un paramètre variable
puisé dans la table Societe*/

AND L.Refsoc = :RefSoc
Cette fois, la propriété dataSource du composant Tquery contenant la requête ci-dessus pointera sur la table Societe. 


NB : les requêtes ci-dessus ont été testées et vérifiées.

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.

samedi 9 avril 2005 à 22:58:56 | Re : relation 1 plusieurs

WinLin

Et oui encore delphi prog qui me repond franchement
tu es vraiment sympas je regarde tout ce que tu m'as mis et le teste

alors j'ai tape les requete avec le sqlbuilder que je viens de decouvrir grace a de la doc.
et grace a cet outil j'ai pu tester le resultat de ma requete

SELECT Societe.Nomsoc, Societe.Refclisoc

FROM "societe.DB" Societe, "LIAISONpersSOC.db" Liaisonperssoc

WHERE (Societe.Refclisoc = Liaisonperssoc.Refsoc)

AND (Liaisonperssoc.Refpers =:formrefpers);

pour mon teste j'ai remplacer formrefpers par une reference d'une personne qui donnait un resultat coheren.

maintenant avec ma dblistbox

j'arrive pas a avoir le resultat dans ma dblistbox1 je cherche une doc simple qui m'expliquerai comment les lier pour avoir mon resultat voulu je vais regarder surle site michel delphi et sur delphifr mais si vous pouvez m'aider en me donnant des liens ou en explicant la manier dont vous proceder avec le BDE merci d'avance

Winlin


samedi 9 avril 2005 à 23:38:52 | Re : relation 1 plusieurs

Delphiprog

Administrateur CodeS-SourceS
Réponse acceptée !
Si tu veux vraiment que le contenu de la liste déroulante soit mis à jour automatiquement, il vaudrait mieux utiliser un TDbLookupListBox.


Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.

samedi 9 avril 2005 à 23:50:37 | Re : relation 1 plusieurs

WinLin

Réponse acceptée !

yep sa fonctionne nickel mais je chercher  a rafraichir le dblookuplistbox pour que lorsque je chercher une autre personne
sa tourne mais j'avais jamais utiliser dblookuplistbox je vais regarder la doc sur cet objet merci encore delphiprog
c'est sympas je me repete mais sa fait plaisir d'avoir de l'aide de personne tel que toi


Winlin


samedi 9 avril 2005 à 23:55:54 | Re : relation 1 plusieurs

Delphiprog

Administrateur CodeS-SourceS
Réponse acceptée !
Ca fait aussi plaisir quand on reçoit un petit mot pour remercier


Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.

dimanche 10 avril 2005 à 00:33:18 | Re : relation 1 plusieurs

WinLin

j'aimerai avoir de la documentation ou un exemple de prog avec le dblookuplistbox ou une explication car j'ai trouver des truc mais
j'arrive pas a le faire fonctionner correctement

Merci d'avance

Winlin

dimanche 10 avril 2005 à 08:24:36 | Re : relation 1 plusieurs

Delphiprog

Administrateur CodeS-SourceS
Peux-tu préciser l'action qu'est censé faire ton composant TDbLookupListBox, stp ?
Ca éviterait de se lancer dans des explications inutiles.

Sinon, en termes généraux, un composant TDbLookupListBox est censé puiser son information (autrement dit les lignes qu'il affiche) dans un ensemble de données externes (propriété listSource) en affichant les lignes du champ indiqué dans sa propriété ListField.
La propriété KeyField doit contenir le nom d'un champ dont les données serviront à retrouver l'enregistrement dans ListSource en fonction de la valeur du champ retourné par la propriété DataField.
TDbLookupListBox permet donc de mettre à jour DataField avec KeyField tout en sélectionnant un élément de la liste dans ListField.
Ouf !

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.

dimanche 10 avril 2005 à 10:16:29 | Re : relation 1 plusieurs

WinLin

lol ok  et bien j'aimerai que le dblookuplistbox afficher
le nombre d'entreprise ou ou travaille une personne

ou le nombre de personne qu'a une entreprise

voir plus haute donc relation 1 plusieurs
ma requete fonctionne nickel avec le sqlbuilder parfaitement

le probleme que j'ai comme je doit rentrer un parambyname dans ma requete vu que j'ai besoin de ces information apres une rechercher sur mes table qui elle fonctionne parfaitement
le resultat de cet rechercher donne nom prenom et referencepersonne que je met dans la requete pour savoir si une personne travaillle dans plusieur entreprise voila en gros mon probleme.

alors j'ai regarde le dblookuplistbox les propriete
les courants datasource et datafield

les keylist le listfield je met les propriete de mon datasource11


REQUETE PREND UN =:formrefpers***
TABLE                        DATASOURCE               QUERY
 database=alias          DATASET=TABLE   datasource=datasource
 table=PERS                                                   sql=REQUETE ***
Active=true                                                   active=false


comme ma table n'est pas active je ne trouve pas les champs
pour le datafield de dblookuplistbox
donc je doit les mettre en programmation
mais n'ayant jamais travailler dbloouplistbox

1) si une personne veux m'aider ce serait vraiment sympas
    (note toutes spécial pour delphiprog)

2) mais sachant que tout le monde n'a pas toujour le temps
    d'aider pour des prob spécifique
   et 'ayant pas envie de vous faire perdre votre temps donner moi de la doc    bien faite sur dblookuplistbox pour que je le connaisse mieux  de cet manier je serai plus précis dans ma question de l'utilisation  de la dblooklistbox. et si sa fonctionne toujour pas 
je reviendrai poser une question
    j'aimerai une bonne doc en francais de préference sur
    l'utilisation de dblooplistbox ou un exemple en programmation
    cela 1 me ferai bien plaisir et il n'y en a pas ou tres peux sur le 
   site de delphifr

Je vous remercie d'avance

Winlin

dimanche 10 avril 2005 à 17:01:04 | Re : relation 1 plusieurs

WinLin

quand je mes les propriete de dblookuplistbox

datafield            nomsoc
datasource        datasource11  -> pointe sur table qui va sur societe
listefield           nomsoc
listesource       datasource11


et j'ai comme erreur
circular datalink are not allowed ?? pq cet erreur


Winlin


1 2

Cette discussion est classé dans : table, query, relation, liaison, societe


Répondre à ce message

Sujets en rapport avec ce message

MAJ de 2 tables!!!!!!!! [ par smr_tjrs ] Slt,J'utilise une BD sous access et je n'arrive pas de faire la MAJ de 2 tables, je vais vous expliquer:J'ai une table societe qui a un id_societe(clé SQL ET Relation entre table !! PLEASE HELP !!!!!! [ par benumiit82 ] Bonjour, Je vais représenter le problème simplement : imaginons une base de données, avec deux tables. Une étant "Etudiant" et l'autre "CoursSuiviParE [TTable][TQuery] edit et post [ par CapToMatteo ] Bonjour, quelle est la différence entre faire un edit sur une TTable et un edit sur un Query ? Le query étant un select * de la table (mais sous c Probleme TClientData [ par steph1969 ] Bonjour A tous,J'ai une application Client / Server basée sur :Coté client :    TSocketConnection Problème avec relation maitre détail [ par codial ] Bonjour,j'ai un souci avec une relation maitre/detail.J'ai une table Professionnels (tblPro) avec id_pro comme index et une table des contacts des pro QUERY CREATION TABLE [ par yvessimon ] Bonjour,Avec TTable il est possible de crée une base de données "mabase.db"avec TQuery il est possible d'ouvrir cette basePouvez-vous me confirmer s'i Query table en lecture seule [ par yvessimon ] Bonjour,Avec Query je crée et ouvre une table paradox.puis je fais un tri croissant ou non .suite à ce tri la table passe en lecture seule ce qui m'in relation maître détaille [ par fadila2007 ] salut, j'ai une relation père fils et je voudrai faire des modifications sur la table père la modification sera automatiquement modifie sur la table f relation entre deux table [ par baloudty ] salut !!je suis débutant  et un problème se pose entre deux table et leur relation et comment les convertir en delphiex : Table = Auteur       Table =


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,59 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.