Procedure ESQL

Una procedura è una routine secondaria senza valori di ritorno. Può accettare parametri di input dal chiamante e può restituire parametri di output al chiamante.

Le procedure sono molto simili alle funzioni. La differenza principale è che, a differenza delle funzioni, le procedure non hanno valore di ritorno. Quindi, non possono essere parte di un'espressione e vengono richiamate mediante l'istruzione CALL. Generalmente, le procedure hanno parametri di output.

E' possibile implementare una procedura in ESQL (una procedura interna) oppure come procedura memorizzata del database (una procedura esterna). La procedura ESQL deve essere un'istruzione ESQL singola, anche se tale istruzione può essere un'istruzione composta come BEGIN END. Non è possibile definire una procedura all'interno di un'istruzione EVAL o di una funzione EVAL.

Quando si definisce una procedura, è necessario assegnarle un nome. Il nome è gestito indipendentemente dalle lettere maiuscole/minuscole (l'utilizzo del nome con qualsiasi combinazione di lettere maiuscole e minuscole corrisponde alla dichiarazione). Ciò è in contrasto con i nomi dichiarati per gli schemi, le costanti, le variabili e le etichette, che sono sensibili al maiuscolo/minuscolo e devono essere specificati esattamente nel modo in cui sono stati dichiarati.

Un'espressione ESQL può contenere un riferimento ad una procedura in un altro schema broker (definito in un file ESQL nello stesso progetto dipendente oppure in un altro progetto dipendente). Se si desidera utilizzare tale tecnica, immettere il percorso completo della procedura oppure includere un'istruzione PATH che imposta il qualificatore. L'istruzione PATH deve essere codificata nello stesso file ESQL ma non all'interno di un MODULE.

Una procedura del database esterna è indicata dalla parola chiave EXTERNAL e dal nome della procedura esterna. Tale procedura deve essere definita nel database e nel broker ed il nome specificato con la parola chiave EXTERNAL ed il nome della procedura memorizzata del database devono essere uguali, anche se non è necessario che i nomi dei parametri corrispondano. Il nome della procedura ESQL può essere diverso dal nome esterno che definisce.

Le procedure sovraccaricate non sono supportate per alcun database. Una procedura sovraccaricata è quella che ha lo stesso nome di un'altra procedura nello stesso schema del database con un numero di parametri diverso o con parametri di tipi diversi. Se il broker rileva che una procedura è stata sovraccaricata, genera un'eccezione.

E' supportata la risoluzione del nome dello schema dinamica; quando si definisce la procedura, è necessario specificare un wildcard per lo schema che viene risolto prima del richiamo della procedura da parte di ESQL. Questa operazione è descritta successivamente in Richiamo delle procedure memorizzate.

Concetti correlati
Panoramica dei flussi di messaggi
Panoramica delle mappature di messaggi
Attività correlate
Sviluppo di flussi di messaggi
Sviluppo di ESQL
Richiamo delle procedure memorizzate
Riferimenti correlati
Nodi integrati
Riferimento ESQL
Istruzione CREATE FUNCTION
Istruzione CREATE MODULE
Istruzione CREATE PROCEDURE
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ak01090_