5° Anno TEORIA 4. Introduzione al linguaggio SQL | Page 62

16 . Il linguaggio SQL Vers . 9.3 – Marzo 2024
SQL DINAMICO
La tecnica dell ’ SQL dinamico o dynamic SQL non prevede l ’ inserimento statico di istruzioni SQL nel codice del programma ospite ma la loro acquisizione dinamica o a tempo di esecuzione da qualsiasi dispositivo di input , oppure la loro generazione a programma . Quindi le istruzioni SQL non sono note più a tempo di compilazione come avviene per l ’ SQL embedded ma vengono create o acquisiste a tempo di esecuzione dal programma ospite .
Con l ’ SQL dinamico è possibile mantenere indefiniti fino al momento dell ’ esecuzione del programma : - il testo dell ’ istruzione SQL ; - il numero ed i tipi delle variabili ospiti ; - i riferimenti agli oggetti della base di dati .;
Il programma del linguaggio ospite deve chiedere all ’ SQL di prendere una stringa di caratteri appena letta , trasformarla in istruzione SQL ed eseguirla .
Esistono due istruzioni SQL che corrispondono a due diverse modalità di esecuzione di una query :
( A ) l ’ esecuzione immediata avviene mediante l ’ istruzione SQL : EXEC SQL EXECUTE IMMEDIATE < Query >
dove : - < Query > è una stringa che rappresenta una query ( composta nel programma ospite ) oppure una variabile ospite di tipo stringa . Questa modalità di esecuzione avviene per istruzioni SQL che non richiedono parametri né in ingresso né in uscita come i comandi di inserimento o cancellazione .
( B ) l ’ esecuzione in due fasi avviene quando l ’ istruzione SQL da eseguire utilizza parametri in ingresso o in uscita oppure deve essere eseguita più volte .
Osserviamo due fasi : ( B1 ) la fase di preparazione : che consiste nell ’ associare un nome all ’ istruzione SQL che può contenere parametri in ingresso rappresentati dal carattere ‘?’
EXEC SQL PREPARE < NomeIstruzioneSQL > FROM < IstruzioneSQL >
dove : - < NomeIstruzioneSQL > è il nome dato all ’ istruzione < IstruzioneSQL > per poter essere richiamata anche in seguito ; - < IstruzioneSQL > è una istruzione SQL che può contenere parametri in ingresso rappresentati dal carattere ‘?’
( B2 ) la fase di esecuzione : che consiste nell ’ eseguire l ’ istruzione SQL preparata utilizzando l ’ istruzione SQL
EXEC SQL EXECUTE < NomeIstruzioneSQL > [ INTO < VariabiliRisultato >] [ USING < VariabiliParametro >]
dove : - < NomeIstruzioneSQL > è il nome dato all ’ istruzione < IstruzioneSQL > nella fase di PREPARE ; - < VariabiliRisultato > è un elenco di variabili ospiti che conterranno l ’ eventuale risultato della query : ogni variabile è preceduta da ‘:’’ - < VariabiliParametro > è un elenco di variabili ospiti che conterranno i parametri da usare nella query
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it ) Pag . 62