Définir table Maître-Détail en runtime
Salut à tous :D
J'avoue ne pas comprendre ce qui se passe.
Sur un DataModule, j'ai une tripotée de groupes TSQLTable - TDatasetProvider - TClientDataSet - TDataSource non liés (dans le sens: pas de maître-détail).
Ce DataModule me sert pour créer et éditer. Autrement dit, si je crée, je laisse tel quel (i.e. non-lié) mais si j'édite je lie tous ces composants.
Pour cela, j'ai fait ma petite routine:
Code:
1 2 3 4 5 6 7 8 9
|
procedure TNewModifDossierDataModule.LinkDataBase(aTable: TSQLTable;
aDataSource: TDataSource; const aFieldName: String);
begin
aTable.MasterSource := nil;
aTable.MasterFields := aFieldName;
aTable.IndexFieldNames := aFieldName;
aTable.MasterSource := aDataSource;
end; |
et je lie toutes mes Tables en runtime.
Seulement, ça ne fonctionne absolument pas ! J'ai mis des DBGrid de test et aucune ne réagit lorsque je sélectionne un autre enregistrement...
Ai-je oublié quelque chose ?
Est-ce seulement possible de lier des tables en runtime ?
Ne vaudrait-il pas mieux spécifier le Master sur le TClientDataset ?
Est-ce que ma méthode, à la base, est mauvaise ?
Encore des subtilités des bases de données que je ne maîtrise absolument pas... :oops:
Merci d'avance! :D