oracle et les plages.....de dates

oracle et les plages.....de dates - SQL/NoSQL - Programmation

Marsh Posté le 03-09-2008 à 16:49:21    

bonjour,
 
voila mon probleme:
j'ai une table sous oracle 9i
 
table plafonds  
date_debut date
date_fin   date
matricule  number(5)
 
A l'insertion et à l'update je dois controller qu'il n'y a pas de periodes
de dates chevauchantes pour un meme matricule:
 
ex: on ne veux pas  
date_debut date_fin   matricule
01/01/2008 01/12/2008 33155
01/01/2007 01/02/2008 33155
 
mais
date_debut date_fin   matricule
01/01/2008 01/12/2008 33155
01/01/2007 01/02/2007 33155
est correct.
 
le probleme c'est que sur les triggers de niveau row il y a le mutating
 
et si je passe par une table temporaire je n'ai pas acces au login de l'utilisateur
(login au niveau du portail 9ias) dans les triggers de niveau table (alors que j'ai
cette info dans les forms)
ce login est indispensable s'il y a plusieurs utilisateurs sur la base simultanement
(pour ne pas melanger les données dans la table temporaire)
 
dans les triggers de niveau statement on n'a pas acces aux variables de la table
 
L'idee la plus proche de la solution serait de faire un controle global sur la table,
en la parcourant,sur l'événement KEY-COMMIT du formulaire (ihm) mais malheureusement
un trigger générique provenant de designer fait un commit systematique avant que je puisse
ajouter mon code de controle(de plus il me faut connaitre le matricule concerné pour ne pas parcourir tte la table)
 
et cerise sur le gateau ce qui vient ajouter à la difficulté c'est que les utilisateurs
peuvent modifier ou inserer plusieurs lignes à la fois (si quelqu'un peut m'expliquer comment
on peut bloquer la saisie à une seule modif à la fois je suis preneur!!!)
 
est ce que quelqu'un aurait une stratégie pour, apres tout, ne controller qu'une plage de dates
(on doit bien pouvoir faire cela sous oracle???non???)
 
@+ ROSAGIO

Reply

Marsh Posté le 03-09-2008 à 16:49:21   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed