|
auteur : Barbibulle |
Les procédures stockées permettent de faire des
traitements sur le serveur (et non sur le client). Ce traitement est
enregistré dans la base de données et est exécuté sur demande par le
serveur. Les avantages des procédures stockées sont : des exécutions plus rapides
car le serveur (généralement) est plus puissant que les clients, des optimisations d'accés plus précisément d'accès aux données ,
et restreindre la charge du réseau.
|
|
auteur : Barbibulle |
La création d'une procédure se fait en SQL (DDL plus
exactement) comme pour la création de table.
CREATE PROCEDURE MA_PROCEDURE_IU (
ID INTEGER ,
TEST INTEGER )
AS
BEGIN
IF (EXISTS (SELECT FROM MA_TABLE WHERE )) THEN
UPDATE MA_TABLE
SET ID = :ID,
TEST = :TEST
WHERE
ELSE
INSERT INTO MA_TABLE (
ID,
TEST)
VALUES (
:ID,
:TEST);
END
|
Cette procédure va insérer un élément dans la table ou le
modifier s'il existe déjà.
Pour pouvoir créer cette procédure avec ISQL ou IBConsole il faut précéder
le CREATE de la ligne suivante :
Qui a pour effet de dire à Interbase que la fin de l'instruction
qui suit est ^ (sinon c'est le ; qui définit la fin d'instruction)
On placera un ^ juste après le dernier END de la procédure et terminera par
remettre le ; comme fin d'instruction avec le code suivant :
|
lien : Qu'est ce qu'une procédure stockée ?
|
|
auteur : Barbibulle |
Il existe plusieurs façons d'utiliser une procédure stockée, soit dans un
ordre SQL soit dans une autre procédure stockée.
En SQL comme une table ou une vue (qui aurait ou non des paramètres
d'entrée)
Select ParametreRetour1, ParametreRetour2
from MaProcedure(ParametreEntree1) where Critères...
|
Dans une procédure stockée il y a plusieurs cas de figure :
La procédure que l'on appelle ne retourne pas de paramètres :
EXECUTE PROCEDURE MaProcedure(:Parametre1,
: Parametre2);
|
Si elle ne retourne qu'un enregistrement
EXECUTE PROCEDURE MaProcedure(:Parametre1,
: Parametre2) RETURNING_VALUES :ID, :TEST;
|
ou
Select ID, TEST from
MaProcedure(:Parametre1, :Parametre2) where .... into :ID, :TEST;
|
S'il y a plusieurs lignes en retour :
FOR Select ID, TEST from
MaProcedure(:Parametre1, :Parametre2) where .... into :ID, :TEST DO
Instruction à faire pour chacune des lignes
|
|
lien : Qu'est ce qu'une procédure stockée ?
|
Consultez les autres F.A.Q's
Les sources présentées sur cette page sont libres de droits
et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur.
Copyright © 2005 Developpez Developpez LLC.
Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne
peut être faite de ce site ni de l'ensemble de son contenu : textes, documents
et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez
selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.