Operazioni di lettura

Sulla Table è possibile eseguire una serie di operazioni di lettura e scrittura. Vediamo innanzitutto le operazioni di lettura:

L’interrogazione viene condotta sulla tabella dalla quale si desidera estrarre un risultato. Possono essere introdotti come parametri una serie di condizioni (where o condition) o in alternativa una serie di pkeys. Inoltre è possibile passare nei kwargs anche degli altri parametri come condizioni.

Interrogazioni su colonne in relazione

Una delle peculiarità dell’ORM di Genropy è che propone di effettuare le interrogazioni dal «punto di vista» di una table di partenza e di poter tuttavia accedere a tutti i campi del database che da quella tabella sono «raggiungibili» attraverso quello che chiamiamo path_relazionale.

Possiamo riferirci a colonne in relazione sia all’interno del parametro column che all’interno del parametro where: è possibile utilizzare le colonne della tabella con il simbolo $, nonché le colonne delle tabelle in relazione con il simbolo @, mentre le variabili utilizzate nel parametro where iniziano sempre con : e si riferiscono a ulteriori parametri passati a piacere al metodo usato per l’interrogazione.

Il meccanismo di traduzione dell’ORM creerà le clausole di JOIN necessarie per leggere e testare queste colonne.

rel_query = clienti_tbl.query(columns='$ragione_sociale,@provincia.@regione.nome AS regione',
                            limit=5)
rel_query.sqltext()

SELECT  t0."ragione_sociale" AS "ragione_sociale",
t2."nome" AS regione,
t0.id AS pkey
FROM fatt."fatt_cliente" AS t0
     LEFT JOIN glbl."glbl_provincia" AS t1 ON t1."sigla" = t0."provincia"
     LEFT JOIN glbl."glbl_regione" AS t2 ON t2."sigla" = t1."regione"
WHERE (t0."__del_ts" IS NULL)
LIMIT 5

L’alternativa all’utilizzo dei path relazionali all’interno dei metodi di interrogazione è l’utilizzo di Colonne virtuali: si rimanda alla sezione dedicata per ulteriore approfondimento.

Parameters:

Parameter name Type Description
where T Permette di indicare la condizione «where» che individuerà i record oggetto della query (es: where=”$id=#THIS.id”)
pkey T Alternativamente alla where permette di fornire una pkey come criterio di ricerca (es: pkey=medico_id)
columns T Permette di indicare le colonne da restituire come risultato dell’interrogazione (es: columns=”$fattura_id,$protocollo,$cliente_id”)
for_update B Se impostato a True il risultato della query sarà predisposto per la modifica tramite un’operazione di update (es: for_update=True)
excludeDraft B Di default True, se impostato a False permette di includere nei risultati gli status «Bozza» (es: excludeDraft=False)
excludeLogicalDeleted B Di default True, se impostato a False permette di includere nei risultati i record archiviati o eliminati (es: excludeDraft=False)

Attachments:

Autore della sezione: Davide Paci