Scripts di interrogazione: sintassi

Sintassi degli scripts di interrogazione

Gli elementi sintattici principali degli scripts di interrogazione sono i seguenti:

bulletvariabili
bulletvariabili di sistema
bulletgruppi di variabili
bulletcondizioni
bulletfunzioni di validazione
bulletutilizzo di macro
bulletfunzioni SQL specifiche per il trattamento degli scripts
bulletlog delle istruzioni SQL per debugging-purposes
bulletfile di inizializzazione dei valori

Valgono inoltre le seguenti regole:

bulletrighe vuote: sono ammesse righe vuote tra una definizione e l'altra (ma non all'interno di una definizione)
bulletrighe di commento: le righe che iniziano con un puntoevirgola (;) sono considerate commenti e trascurate;
bulletelementi di commento: se in una riga compare una doppiabarra (//), la doppiabarra e tutto quanto segue è considerato commento e trascurato;
bulletcontinuazione delle righe: se una riga termina con un carattere di sottolineatura la riga successiva viene letta come se fosse una continuazione della precedente. Gli spazî che eventualmente precedono il segno di sottolineatura vengono trascurati.
bulletseparatore decimale: il separatore decimale è la virgola;
bulletespressioni SQL: è possibile usare espressioni SQL in qualunque punto della sintassi; il formato è
$SQL|$LSQL|$HSQL|$HLSQL={select xxx from yyy where aaa>bbb}[valore-test]
bullet Le espressioni LSQL (Late SQL) sono consentite solo sulle clausole /ESEGUI e /CHECK e saranno eseguite il più tardi possibile, ovvero nel momento dell'effettivo utilizzo della stringa.
bulletLe espressioni con il prefisso H (HSQL, HLSQL) indicano le heterogeneous queries. Le heterogeneous queries utilizzano l'apposita sintassi del BDE (esempio: SELECT * FROM ":DB1:table1" JOIN ":DB2:table2" on ...... ).
Resta inteso che tutte le queries not heterogeneous sono automaticamente riferite al database di Jolly.
bullet Le espressioni SQL sono eseguite prima di valutare la sintassi dello script, ma dopo aver tradotto le macro.
bullet Il valore [valore-test] è utilizzato al posto del risultato dell'espressione SQL durante la validazione preliminare dell'espressione per quei casi in cui, dipendendo da valori che saranno assegnati a runtime, la valutazione dell'espressione SQL risulti impossibile o anche solo inutilmente onerosa.
bullet Se l'espressione SQL è una query, il risultato sarà sostituito all'espressione (sarà considerato il primo campo della query). Se la query rende più di un record, i records saranno restituiti separati dal carattere | (ascii 124).
bullet Il simbolo $PK$ sarà sostituito dalla primary key dell'oggetto che ha creato lo script. In caso di oggetto generato da allegato, si intende l'oggetto che ha generato l'allegato, non l'allegato stesso.
bulletE' possibile referenziare le seguenti pseudo-variabili:
bullet$JOP  operatore attivo su jolly
bullet$JCOMP  computer su cui è in esecuzione jolly
bullet$JSCRIPT nome dello script in funzione (solo per scripts SQL)

Per esempi sull'uso degli scripts di interrogazione vedi anche: ESEMPI DI SCRIPTS DI INTERROGAZIONE

LOG DELLE ISTRUZIONI SQL
Inserendo nel testo dello script una riga con il seguente formato:

LOG_SQL=c:\temp\log.SQL

il programma registra sul file che viene specificato tutte le istruzioni SQL utilizzate all'interno dello script. La registrazione del log inizia a partire dal punto in cui viene inserito il comando.
Se non viene specificato nessun nome di file il programma interrompe la registrazione del log. 

FILE DI INIZIALIZZAZIONE DEI VALORI

E' possibile specificare un file che contiene i valori default per le variabili che ne fanno richiesta (vedi opzione /DEFAULT per le variabili).
Il formato del comando è il seguente: INIT_FILE=nomefile ;
nomefile
può contenere variabili di ambiente e di norma è il nome del file contenente i valori di inizializzazione; nomefile può tuttavia essere il nome di una cartella (anziché di un file), oppure un filemask (esempio: c:\temp\*.dat), oppure può essere lasciato direttamente vuoto; in tali casi il programma consentirà di specificare il file al momento dell'esecuzione.
nomefile può contenere un valore per riga nel seguente formato: VARIABILE    tab    valore da assegnare (tab indica un tabulatore); .

Sono disponibili le seguenti opzioni collegate al file di inizializzazione dei valori:

bullet

MOVE_INIT_FILE=path   istruisce il programma a spostare nella cartella specificata il file di inizializzazione dopo che questo è stato felicemente utilizzato; è consentito l'uso delle variabili di ambiente; l'opzione è alternativa a RENAME_INIT_FILE

bullet

RENAME_INIT_FILE=[ext]    rinomina con l'estensione specificata il file di inizializzazione dopo che questo è stato felicemente utilizzato; se l'estensione ext non viene specificata, il programma utilizza l'estensione default (.ren); l'opzione è alternativa a MOVE_INIT_FILE

Esempio:

INIT_FILE=$ALLEGATI$\pippo.dat
MOVE_INIT_FILE=$CLIENT-CESTINO$
RENAME_INIT_FILE=bak

esempio di contenuto di pippo.dat (i nomi delle variabili da assegnare sono NOMEVAR1, NOMEVAR2 e NOMEVAR3, i valori sono quelli scritti a lato):
NOMEVAR1    0001
NOMEVAR2    513
NOMEVAR3    giuseppe

Pagina base del manuale di JOLLY

aggiornato il 23/01/2010

home

scrivimi, se ti va