Bonjour,
J'ai une appli en forms 6i, et je souhaiterais interdire dans un champ varchar(100) l'utilisation de certains caractères (le point virgule en l'occurance)
Y a t il moyen de faire ça côté Forms ? ou bien côté Bdd (en 11g)
Merci de votre aide
Bonjour,
J'ai une appli en forms 6i, et je souhaiterais interdire dans un champ varchar(100) l'utilisation de certains caractères (le point virgule en l'occurance)
Y a t il moyen de faire ça côté Forms ? ou bien côté Bdd (en 11g)
Merci de votre aide
Tu ne peux pas interdire à la saisie dans Forms (sauf peut être en codant un truc en java), mais sinon tu peux le bloquer à la validation du champ
Trigger When-Validate_Item
Code : Sélectionner tout - Visualiser dans une fenêtre à part IF INSTR(:bloc.champ, ';') > 0 THEN Message('Pas de ;'); message(' '); RAISE Form_Trigger_Failure; END IF;
Côté bdd tu peux aussi.
L'impact est différent :
Côté BDD tu assure qu'il n'y en aura jamais. Mais le message utilisateur sera moins précis (sera traité par la base lors du Post de l'enregistrement).
Côté Forms tu assures que l'utilisation de cet écran uniquement ne mettra pas de ';', mais le message utilisateur sera plus précis (sera affiché dès que l'utilisateur change de champ).
Si tu veux juste remplacer dans informer l'utilisateur, alors trigger en base tout simple (attention, bien mettre ton block dans Forms en mode dml_returning à true
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CREATE OR REPLACE TRIGGER xxxx BEFORE UPDATE OR INSERT ON matable FOR EACH ROW BEGIN :NEW.champ := REPLACE(:new.champ, ';'); END;
Merci pour la réponse, je garde ça sous le coude
pour le moement, j'ai codé ça sur l'évènement POST-CHANGE sur champ dans forms
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if :ECH_LIB LIKE '%;%' then :ECH_LIB := replace(:ECH_LIB,';',' '); end if
Partager