Bonjour,
j'ai un programme qui fonctionne sur SQLServeur et j'aimerai le transformer de façon à le faire fonctionner sous Oracle 8i.

L'idée est que dans SQLServeur, j'utilise un trigger pour récupérer l'id en lançant une erreur via un print
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
CREATE TRIGGER [MESSAGE_IDENTITE_ARTICLE] ON dbo.ARTICLE FOR INSERT AS
 
DECLARE @@IDENTITE INT
SELECT @@IDENTITE = INSERTED.[N_IDARTICLE] FROM INSERTED
PRINT 'N_IDARTICLE='+REPLACE(STR(@@IDENTITE,10,0),SPACE(1),'')+';'
Dans mon code (Delphi via ADO), je récupère l'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
if ADOConnection.Errors.Count = 1 then ...
Result := ADOConnection.Errors[0].Description;
J'aimerai pourvoir faire la même chose en Oracle pour envoyer l'id dans le trigger de l'insertion afin de ne pas avoir à modifier l'ensemble de mes requetes d'insertion
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
CREATE TRIGGER OWNER.ARTICLETRIGGER1 before INSERT 
ON OWNER.ARTICLE
FOR EACH ROW 
DECLARE
  NextVal Number;
BEGIN
 Select SEQ_ARTICLE.NextVal into NextVal from dual;
 :new.N_IDArticle := NextVal;
-- renvoi de NextVal
END;