Bonjour
Par obligation professionnel, mais aussi par curiosité je suis obligé de me remettre à PL/SQL,
Je dois piloter des procédures avec les composants DOA de Allroundautomation,
j’ai fais ceci il y à 8 bonnes années et je n’ai plus trop les reflexes en tête
J’ai écris une procédure, créé la table qui va avec et (un exemple trouvé chez Allroundautomation), tous fonctionne bien du côté pl/sql
La procédure :
Le code pour l’appeler qui est OK aussi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 CREATE OR REPLACE PROCEDURE Augmentation_1 ( Numemp IN DOA_EMP.empno%Type -- numéro de l'employé ,Pourcent IN NUMBER -- pourcentage d'augmentation ) IS BEGIN -- augmentation de l'employé Update DOA_EMP Set sal = 1 + sal * Pourcent --dbms_output.put_line( 'Après augmentation ' || To_char( Emp.empno )) Where empno = Numemp ; END;
Mais je n’arrive pas à l’appeler avec Delphi et les composants OracleDataSet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Declare LR$Emp DOA_EMP%Rowtype ; Begin --Select * Into LR$Emp From DOA_EMP Where empno = 7369 ; -- lecture ligne avant mise à jour --dbms_output.put_line( 'Avant augmentation ' || To_char( LR$Emp.empno ) -- || ' ' || LR$EMp.ename || ' --> ' || To_char( LR$Emp.sal ) ) ; --Augmentation_1( 7369, 1.5 ) ; -- appel de la procédure Augmentation_2( 7369, 1.5 ) ; -- appel de la procédure --Select * Into LR$Emp From DOA_EMP Where empno = 7369 ; -- lecture ligne après mise à jour --dbms_output.put_line( 'Après augmentation ' || To_char( LR$Emp.empno ) -- || ' ' || LR$EMp.ename || ' --> ' || To_char( LR$Emp.sal ) ) ; End ;
Je dois passer deux variables :
Numemp est un integer
Percent est un float
Qui pourrai me mettre sur la voie ?
Merci par avance
Henri
Partager