Salut à tous
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:
et je lie toutes mes Tables en runtime.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
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...
Merci d'avance!
Partager