Procedure ExecuterOrdreSql(NomOrdreSql : Caractere, SourceOrdreSql : Caractere, NbEnregistrementsImpactes : Entier=? Sortie, TDG : Entier=0);
Le nom de l'ordre Sql doit être unique. Il permet de tracer son exécution. Le source de l'ordre Sql doit respecter la syntaxe et la sémantique de la base de données cible, même pour le pilote Open DataBase Connectivity (ODBC).
Le source de l'ordre Sql peut être par exemple :
SELECT ename, empno FROM emp WHERE deptno=10;
INSERT INTO emp(ename, empno, hiredate) VALUES ('john', 8100, sysdate);
UPDATE emp SET sal=2100.00 WHERE empno=8100;
DELETE FROM emp WHERE deptno=40;
CREATE OR REPLACE PROCEDURE MaProcedure(NumeroDepartement IN NUMBER, SalaireMin OUT NUMBER, SalaireMax OUT NUMBER) AS
BEGIN
SELECT MIN(sal), MAX(sal) INTO SalaireMin, SalaireMax FROM emp WHERE deptno=NumeroDepartement;
END MaProcedure;
Le source de l'ordre Sql ne peut pas être :
COMMIT;
ROLLBACK;
Le source de l'ordre Sql ne peut comporter ni des paramètres d'entrée, de sortie ou d'entrée-sortie et ni des résultats pour les ordres de sélection.
A l'issu de l'exécution, le paramètre NbEnregistrementsImpactes reçoit le nombre d'enregistrements impactés quand un unique ordre Sql d'insertion, de mise à jour ou de suppression est exécuté.
Si le paramètre TDG spécifiant le temps de garde en secondes est positif, alors il existe un délai pour exécuter l'ordre Sql.
Si la taille du source de l'ordre Sql dépasse la taille du paramètre TailleMaxOrdreSql, alors l'exception OrdreSqlTropGrand est envoyée.
Si la méthode échoue, alors l'exception ErreurOrdreSql est envoyée.
Principal
/*******/
Variable
/******/
MaConnexionSql : Nul Ou ConnexionOracle;
Debut
...
MaConnexionSql.ExecuterOrdreSql("INSERT INTO emp(ename, hiredate, empno, deptno, sal) VALUES ('youpi3', sysdate, 9100, 40, 1100.00);");
MaConnexionSql.ExecuterOrdreSql("UPDATE emp SET sal=-sal;");
MaConnexionSql.ExecuterOrdreSql("DELETE FROM emp WHERE deptno=40;");
MaConnexionSql.ExecuterOrdreSql(CREATE OR REPLACE FUNCTION MaFontion(NumeroDepartement IN NUMBER) RETURN NUMBER AS \
SalaireMoyen NUMBER; \
BEGIN \
SELECT AVG(sal) INTO SalaireMoyen FROM emp WHERE deptno=NumeroDepartement; \
RETURN SalaireMoyen; \
END MaFonction;"
);
...
Fin Principal
- | - | - | - | - | - | - | - | - |