Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Utilisation des procédures stockées.
Une procédure stockée ( Stored Procedure ) est une suite d’instructions SQL stockées dans la base de données et pouvant être exécutée par appel de son nom.
Autres termes utilisés : procédure cataloguée / procédure mémorisée
Remote procedure en anglais.
Particularités :
Les procédures stockées diffèrent des instructions SQL :
- leur syntaxe est vérifiée et elles sont « compilées ». C’est le code compilé qui est utilisé lors des appels
- elles ne sont pas appelées automatiquement, mais doivent faire l’objet d’un appel explicite de la part de l’application cliente.
- elles peuvent être appelées par plusieurs applications frontales
Avantages :
L’utilisation des procédures mémorisées améliore les performances par utilisation du code compilé
Elles renforcent l’intégrité de la base en centralisant les traitements en un endroit unique et l'unicité du code
L’utilisation des procédures stockées est possible dans PowerBuilder, et ce à tout niveau :
- en entrée d’une data window,
- en entrée d’un query
- dans du code PostScript. C’est ce point qui nous préoccupe ici.
Remarque préliminaire:
Il va de soi, mais ça va mieux en le disant, que l’utilisation d’une procédure stockée n’est possible que dès l’instant où elle a été créée au niveau du moteur....
La technique d’utilisation n’est pas radicalement différente des mécanismes utilisés pour le SQL encapsulé.
Elle diffère principalement en deux points:
- la déclaration de la procédure stockée
- le déclenchement de l’exécution par l’ordre SQL
1°/ Déclaration de la procédure stockée
Syntaxe :
DECLARE NomProc PROCEDURE FOR StoredProcedureName {USING TransactionObject} ;
Remarques :
NomProc est un nom symbolique, interne à l’application PowerBuilder, c’est lui qui sera repris au niveau de instructions SQL suivantes telles que execute et fetch.
La syntaxe de passage de paramètres à la procédure stockée, si celle-ci en attend, peut varier d’un SGBD à un autre, se reporter aux documents correspondants.
2°/ Déclenchement de l’exécution par l’ordre SQL : execute
Syntaxe :
EXECUTE NomProc ;
Exemple d'appel :
// regarde s'il s'agit ou non d'un nouveau user, ou d'une ré-initialisation DECLARE proc_utilisateur_initialise PROCEDURE FOR pc_utilisateur_initialise @nom = :sqlca.logid; EXECUTE proc_utilisateur_initialise; IF SQLCA.sqlcode = 0 THEN FETCH proc_utilisateur_initialise INTO :li_nouveau_ou_initialise; END IF CLOSE proc_utilisateur_initialise;
Hors ligne
pick ouic a écrit:
L’utilisation des procédures stockées est possible dans PowerBuilder, et ce à tout niveau :
.....
- en entrée d’un query
.....
à travers le painter 'Query' ?
Je serais curieux de savoir comment
Hors ligne