FAQ Interbase/FirebirdConsultez toutes les FAQ
Nombre d'auteurs : 3, nombre de questions : 56, dernière mise à jour : 8 octobre 2006 Ajouter une question
Cette faq a été réalisée à partir des questions fréquement posées sur les forums InterBase et Firebird de et de l'expérience personnelle des auteurs.
Nous tenons à souligner que cette F.A.Q. ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette F.A.Q. ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez devenir rédacteur, lisez ceci
Sur ce, nous vous souhaitons une bonne lecture.
L'équipe Firebird-Interbase de Developpez.com
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.
La création d'une procédure se fait en SQL (DDL plus exactement) comme pour la création de table.
Code SQL : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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 |
Code SQL : | Sélectionner tout |
SET TERM ^;
Code SQL : | Sélectionner tout |
SET TERM ;^
Pour supprimer une procédure c'est assez simple :
Code SQL : | Sélectionner tout |
DROP PROCEDURE MaProcedure;
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)
Code SQL : | Sélectionner tout |
1 2 | Select ParametreRetour1, ParametreRetour2 from MaProcedure(ParametreEntree1) where Critères... |
Code SQL : | Sélectionner tout |
1 2 | EXECUTE PROCEDURE MaProcedure(:Parametre1, :Parametre2); |
Code SQL : | Sélectionner tout |
1 2 | EXECUTE PROCEDURE MaProcedure(:Parametre1, :Parametre2) RETURNING_VALUES :ID, :TEST; |
Code SQL : | Sélectionner tout |
1 2 | Select ID, TEST from MaProcedure(:Parametre1, :Parametre2) where .... into :ID, :TEST; |
Code SQL : | Sélectionner tout |
1 2 3 | FOR Select ID, TEST from MaProcedure(:Parametre1, :Parametre2) where .... into :ID, :TEST DO Instruction à faire pour chacune des lignes |
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes 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 © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et 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.