Bonjour

Je n'ai pas très bien compris la signification de la propriété "Information de Reference" d'une relation entre 2 blocs.

J'ai créé un module avec 3 blocs : Commandes, Détail commandes et Stocks.

J'ai créé manuellement une relation entre Détail commande et Stocks et testé le bouton radio "Ref objet" en bas de la fenêtre de définition de relation proposée par l'assistant : j'ai choisi la colonne de lien entre les stocks et le détail commande ("STO_ART_NUM"). J'ai alors une erreur de compilation dans le déclencheur ON-CHECK-DELETE-MASTER :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
DECLARE
  Dummy_Define CHAR(1);
  --
  -- Begin T_STOCKS detail declare section
  --
  CURSOR T_STOCKS_cur IS      
    SELECT 1 FROM T_STOCKS T     
    WHERE T.STO_ART_NUM = (SELECT REF(T) FROM T_DETAILS_CDE T WHERE rowid = :T_DETAILS_CDE.rowid);
 
Erreur 336, table non-objets "T" non valide dans ce contexte.
Mais si je supprime complètement la relation et si je la recrée en utilisant une condition de jointure (présente dans mon schéma de base avec un lien entre un n° article du détail commande et un n° article dans les stocks), l'erreur de compilation disparait mais mon module est inutilisable : il n'affiche plus les données détails, une erreur FRM-40505 survient et Aide / Erreur affiche ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
Erreur d'instruction SQL :
SELECT ROWID,REF(T),T.DET_COM_NUM,T.DET_LIG_NUM,T.DET_ART_NUM,T.DET_PU,T.DET_QTE_COM,T.DET_QTE_EXP FROM T_DETAILS_CDE T WHERE (T.DET_COM_NUM=:1) order by DET_LIG_NUM
Erreur :
ORA-00904: "T" : identificateur non valide
Pour couronner le tout, il m'est impossible de revenir en arrière ! Le champ en dessous du bouton radio "Ref objet" est grisé et contient mon nom d'item "STO_ART_NUM" sans que je puisse l'effacer !

Je ne sais pas comment rétablir la situation ...
Merci par avance de votre aide !