Scripts di interrogazione: sintassi
Sintassi degli scripts di interrogazione
Gli elementi sintattici principali degli scripts di interrogazione sono i seguenti:
- variabili
- variabili di sistema
- gruppi di variabili
- condizioni
- funzioni di validazione
- utilizzo di macro
- funzioni SQL specifiche per il trattamento degli scripts
- log delle istruzioni SQL per debugging-purposes
- file di inizializzazione dei valori
Valgono inoltre le seguenti regole:
- righe vuote: sono ammesse righe vuote tra una definizione e l'altra (ma non all'interno di una definizione)
- righe di commento: le righe che iniziano con un puntoevirgola (;) sono considerate commenti e trascurate;
- elementi di commento: se in una riga compare una doppiabarra (//), la doppiabarra e tutto quanto segue è considerato commento e trascurato;
- continuazione 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.
- separatore decimale: il separatore decimale è la virgola;
- espressioni 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]- 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.
- Le 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. - Le espressioni SQL sono eseguite prima di valutare la sintassi dello script, ma dopo aver tradotto le macro.
- 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.
- 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).
-
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.
- E' possibile referenziare le seguenti pseudo-variabili:
- $JOP operatore attivo su jolly
- $JCOMP computer su cui è in esecuzione jolly
- $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:
- 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
- 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