salut,
(Oracle Forms 9i)
je déclare une variable globale mais lorsque j'essaie d'affecter son contenue à un autre champs ça ne marche pas
un message d'erreur s'affiche(exception non traité)
Version imprimable
salut,
(Oracle Forms 9i)
je déclare une variable globale mais lorsque j'essaie d'affecter son contenue à un autre champs ça ne marche pas
un message d'erreur s'affiche(exception non traité)
Merci de donner plus d'infos, notament sur les instructions que vous utilisez.
code (intialisation )
utilisation du variable globaleCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 declare v_exist number(1); Al_id ALERT ; LI$Bouton pls_integer ; begin SELECT 1 INTO v_exist FROM super_utilisateur WHERE login1 = :connexion.LOGIN2 AND mot_passe1 = :connexion.mot_passe2; go_block ('menu_super'); exception when no_data_found then begin SELECT 1 INTO v_exist FROM utilisateur WHERE login = :connexion.login2 AND mot_passe = :connexion.MOT_PASSE2; :GLOBAL.code := :connexion.code_actel; go_block ('menu_util'); exception when no_data_found then BEGIN Clear_Form(No_Validate); END; Al_id := Find_Alert( 'AL_OUI_NON' ) ; If Id_Null( Al_id ) Then Message('la boite d''alerte mon_alerte n''existe pas dans la forme'); Raise Form_Trigger_Failure ; Else LI$Bouton := Show_Alert( 'AL_OUI_NON' ) ; If LI$Bouton = ALERT_BUTTON1 Then begin GO_BLOCK('Connexion'); end; Else DO_KEY('EXIT_FORM'); End if ; end if; end loop; End ;
code
Code:
1
2
3 insert into non_table(..,code_actel) values (...,:non_bloc.code_act= :global.code) commit;
code (intialisation )
utilisation du variable globaleCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 declare v_exist number(1); Al_id ALERT ; LI$Bouton pls_integer ; begin SELECT 1 INTO v_exist FROM super_utilisateur WHERE login1 = :connexion.LOGIN2 AND mot_passe1 = :connexion.mot_passe2; go_block ('menu_super'); exception when no_data_found then begin SELECT 1 INTO v_exist FROM utilisateur WHERE login = :connexion.login2 AND mot_passe = :connexion.MOT_PASSE2; :GLOBAL.code := :connexion.code_actel; go_block ('menu_util'); exception when no_data_found then BEGIN Clear_Form(No_Validate); END; Al_id := Find_Alert( 'AL_OUI_NON' ) ; If Id_Null( Al_id ) Then Message('la boite d''alerte mon_alerte n''existe pas dans la forme'); Raise Form_Trigger_Failure ; Else LI$Bouton := Show_Alert( 'AL_OUI_NON' ) ; If LI$Bouton = ALERT_BUTTON1 Then begin GO_BLOCK('Connexion'); end; Else DO_KEY('EXIT_FORM'); End if ; end if; end loop; End ;
code
Code:
1
2
3 insert into non_table(..,code_actel) values (...,:global.code) commit;
Assurez-vous que vous exécutez bien la partie de code qui renseigne la globale. Sinon, celle-ci reste non initialisée et génère donc une erreur à la lecture.
Vous pouvez utiliser l'instruction Default_Value() pour donner une valeur défaut à une globale.
A votre place, je placerai un message de trace dans la partie qui renseigne cette globale.