Bonjour,
J'ai 2 ADOTable (Entetes et Lignes) que j'ai liées en donnant les bonnes propriétés MasterSource et MasterFields de la seconde.
Pour éliminer d'autres causes possibles et mettre en évidence le souci, j'ai mis le code suivant qui compte le nombre de lignes de Lignes liées à une Entete :
Après lancement de l'exécutable, et positionnement sur un enregistrement master (toujours le même dans le test), je trouve le nombre correct de lignes. Si je passe une seconde fois, après m'être repositionné sur le même enregistrement master, et sans même faire de mise à jour, il n'y a plus de relation ! Je parcourrais toute la table lignes s'il n'y avait pas une condition d'arrêt à 50. Si j'arrête et relance, je trouve à nouveau le nombre attendu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 assert ( dm.tablelignes.mastersource.name = 'DataSourceEntetes'); assert ( dm.tablelignes.masterfields = 'Code'); assert ( dm.tablelignes.indexfieldnames = 'CodeDocument;NumeroLigne'); assert ( dm.tableEntetesCode.Value = '200107'); assert ( dm.tableLignesCodeDocument.Value = dm.TableEntetesCode.Value); assert ( dm.tableLignesNumeroLigne.Value = 1); n := 0 ; dm.tableLignes.first ; while not dm.tableLignes.eof and (n < 50) do begin inc(n); dm.tableLignes.next ; end; showmessage( 'nb lignes='+inttostr(n) ); assert ( n < 50 );
Vous voyez la batterie d'assert (bien activés). Qu'est-ce qui pourrait provoquer cette rupture du lien ?? Qu'est ce que je pourrais vérifier de plus ??
Merci pour vos suggestions !
Partager