mercoledì 9 dicembre 2015

L'SQL senza l'SQL

SQL, da pronunciare rigorosamente siquel, è l'acronimo di Structured Query Language.
È uno strumento fondamentale per interrogare e fare manutenzione del Data Base sulla maggior parte delle piattaforme software: DB2, Windows, Linux comprendono strumenti per utilizzare questo linguaggio. Ci sono piccole differenze di sintassi, ma nulla che non si possa superare con un minimo di attenzione.

Chi si occupa di manutenzione software, e ha bisogno di uno strumento veloce per analizzare un archivio, per fare ricerche, per controllare informazioni e fare modifiche "al volo", deve saperlo utilizzare, almeno per quanto riguarda le funzioni base.

Un caso plausibile

Ora, provate a immaginare una situazione come questa: il consulente arriva dal cliente, dotato di un sistema iSeries, fa un po' di analisi della situazione, e vede che deve modificare sull'anagrafico Clienti un campo che chiameremo "flag di cliente vecchio", per tutti quelli che non hanno ordini nell'ultimo anno.
Ovviamente il nostro consulente sa che per fare questo è sufficiente lanciare un unico comando SQL, qualcosa del genere

Update Clienti set Cliente_Vecchio='S'
where Codice_Cliente not in 

(Select Codice_Cliente from Ordini where data >= data_di_un_anno_fa)

Non è dei più semplici, ma in pratica mette il flag su tutti i clienti il cui codice NON compare nella lista estratta dal comando in parentesi, che contiene tutti i codici cliente che hanno un ordine a partire dalla data di un anno fa.
Più semnplice da capire che da spiegare :-)

Ora però il nostro consulente va sulla riga comandi, scrive STRSQl (start SQL) e riceve il messaggio: "SQL for DB2 not installed".

Accidenti, e adesso?

Ovviamente si dovrà scrivere un programma, sempre che il cliente abbia installato il compilatore RPG o Cobol, a seconda delle capacità specifiche del professionista.

Soluzione alternativa (e divertente)

Oppure si può risolvere in un modo più elegante e tutto sommato divertente, basta avere installato sul proprio PC il modulo Operation Navigator nella sua versione completa.

Selezionate la vostra macchina nella lista a sinistra, aprite il gruppo Database, quindi cliccate con il pulsante destro del mouse sul nome della macchina: si aprirà un menù contestuale come nell'immagine.
Selezionate Esegui script SQL...

Comparirà un pannello simile a quello riportato qui sotto, nel quale potete già vedere alcune cose interessanti: vediamole.

Innanzi tutto, nella parte superiore potete inserire un qualsiasi comando SQL, che verrà eseguito sul sistema iSeries selezionato. Dovete solo fare attenzione a scrivere i nom delle Tabelle nel formato libreria.tabella e non con quella standard dell'AS/400 con la barra tra nome della libreria e nome del file.


Una volta selezionato il pulsante  Esegui script, una piccola clessidra, vedrete il risultato nella parte inferiore, con tutti i campi scelti nella clausola select.






Conclusioni

Questa funzione permette di fare un sacco di cose, oltre all'esecuzione pura e semplice di uno script, per esempio la possibilità di salvare un comando dentro un file di testo, per poterlo riutilizzare sempre qui oppure sull'iSeries, con un semplice taglia-incolla.

Vi ho incuriositi?
Lo spero, e vi invito a usare questo "trucchetto": fatemi sapere le vostre opinioni e se scoprite qualcos'altro, fatemelo sapere, così potrò aggiungerlo qui (ovviamente prendendomene il merito... :-D)

Un abbraccio

Nessun commento: