Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1181 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Delphi] Faire et défaire dynamiquement une relation Maître-Détail

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Delphi] Faire et défaire dynamiquement une relation Maître-Détail

n°145304
Thander
Posté le 27-05-2002 à 11:19:31  profilanswer
 

:hello: à tous
 
Voilà sous Delphi, j'établi dynamiquement une relation Maître-Détail comme ça :
 
   Tab_detail.MasterSource:=Dat_maitre;
   Tab_detail.MasterFields:= 'NUM';
 
Avec Tab_detail : DataSource:Dat_detail  
     Tad_maitre : DataSource:Dat_maitre, identifiant:NUM
 
Mon problème, c'est de détruire de façon dynamique cette relation dans Delphi :)  
 
Comment y faut faire :??:  
 
 :jap: de vos réponses

mood
Publicité
Posté le 27-05-2002 à 11:19:31  profilanswer
 

n°145312
Thander
Posté le 27-05-2002 à 11:32:39  profilanswer
 

viiz a écrit a écrit :

Tab_detail.MasterFields:= '';
Tab_detail.MasterSource:=nil;  
 
Mé bon c'est peut etre pas ca...  




 
J'ai déjà essayé ça (en toute logique) mais il m'affiche un message d'erreur :(

 

[jfdsdjhfuetppo]--Message édité par Thander le 27-05-2002 à 11:33:10--[/jfdsdjhfuetppo]

n°145332
Thander
Posté le 27-05-2002 à 11:52:35  profilanswer
 

Bon, ben finalement, ça marche avec ça, désolé pour le dérangement :D  
 
Tab_detail.MasterFields:= '';  
Tab_detail.MasterSource:=nil;  
 
Aujoud'hui ça marche alors que jeudi ça ne marchait pas, étrange :heink:  
 
 :jap: pour ton aide viiz

 

[jfdsdjhfuetppo]--Message édité par Thander le 27-05-2002 à 11:53:24--[/jfdsdjhfuetppo]

n°149912
Thander
Posté le 03-06-2002 à 13:27:48  profilanswer
 

Toujours des problèmes :(  
 
Avec Tab_tva : DataSource:Dat_tva
     Tab_categorie : DataSource:Dat_categorie, identifiant:NUM  
 
 
 
procedure TFrm_categorie.FormCreate(Sender: TObject);
begin
   Tab_categorie.IndexName:= 'ILIB_CATEGORIE';
   Tab_tva.MasterSource:= Dat_categorie;
   Tab_tva.MasterFields:= 'NUM';
   Tab_tva.IndexFieldNames:= 'NUM_CATEGORIE;JOUR';    
end;
 
procedure TFrm_categorie.FormClose(Sender: TObject);
begin
   Tab_tva.MasterSource:=nil;
   Tab_tva.MasterFields:= '';
   Tab_tva.IndexFieldNames:= '';  
end;
 
La 1° fois que j'ouvre la Form, pas de problème ;)
Ensuite, je la ferme et je la ouvre à nouveau, et là gros message d'erreur "Field 'NUM' not found" :ouch:  
 
 
Par contre si j'essaie d'enlever la ligne Tab_tva.IndexFieldNames:= ''; et bien là ça marche :heink:  
 
C'est quoi ce truc :pt1cable:

n°150004
Thander
Posté le 03-06-2002 à 15:05:22  profilanswer
 

:bounce:

n°150049
Thander
Posté le 03-06-2002 à 15:43:43  profilanswer
 

Bon, ben j'ai trouvé tout seul :kaola:

n°150223
Thander
Posté le 03-06-2002 à 17:10:02  profilanswer
 

Le temps de tester si ça marche dans tous les cas ;)  
 
Je donne directement les procédures :
 
procedure SupprimerRMD(Table: TIBTable);
begin
   Table.Active:= False;
   Table.MasterSource:= nil;
   Table.MasterFields:= '';
   Table.IndexFieldNames:= '';
   Table.Active:= True;
end;
 
procedure CreerRMD(Table: TIBTable; MasterSource: TDataSource; MChamp: String; Index: String);
begin
   SupprimerRMD(Table);
   Table.Active:= False;
   Table.MasterSource:= MasterSource;
   Table.MasterFields:= MChamp;
   Table.IndexFieldNames:= Index;
   Table.Active:= True;
end;
 
 :sol:


Message édité par Thander le 06-03-2002 à 17:15:16
n°150358
Thander
Posté le 03-06-2002 à 18:51:15  profilanswer
 

Ok, j'aurai pu mettre des with (c'est pour antp :D )

n°150832
Thander
Posté le 04-06-2002 à 12:31:39  profilanswer
 

Version finale :
 
procedure SupprimerRMD(Table: TIBTable);
begin
   with Table do
   begin
      Active:= False;
      MasterSource:= nil;
      MasterFields:= '';
      IndexFieldNames:= '';
      Active:= True;
   end;
end;
 
procedure CreerRMD(Table: TIBTable; MSource: TDataSource; MChamp: String; Index: String);
begin
   SupprimerRMD(Table);
   with Table do
   begin
      Active:= False;
      MasterSource:= MSource;
      MasterFields:= MChamp;
      IndexFieldNames:= Index;
      Active:= True;
   end;
end;
 
 
 
 :non: A ne pas faire (je me suis fait avoir :D )
 
procedure CreerRMD(Table: TIBTable; MasterSource: TDataSource; MChamp: String; Index: String);  
begin  
   SupprimerRMD(Table);
   with Table do
   begin  
      Active:= False;  
      MasterSource:= MasterSource;  :gun:  
      MasterFields:= MChamp;  
      IndexFieldNames:= Index;  
      Active:= True;  
  end;
end;  
 
 
MasterSource:= MasterSource, là le compilateur fait i:=i, alors la procédure ne marche pas :non:  
Donc with attention :kaola:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Delphi] Faire et défaire dynamiquement une relation Maître-Détail

 

Sujets relatifs
[Delphi] Text, filetext[DELPHI] String tokenizer
[java] créer des fonctions dynamiquement ?[delphi] Optimiser un controle Table
[Delphi] Composant qui affiche du XML sous forme de Treeview ?*DELPHI* Lire une ListView avec le Handle, probleme, aidez moi svp
changecount.... delphi[delphi]les blems de pilou: ça fesait longtemp :) : shellapi
Delphi lecture fichierImpression d'un etat en C++ Builder ou Delphi HELP!
Plus de sujets relatifs à : [Delphi] Faire et défaire dynamiquement une relation Maître-Détail


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR