Operazioni di lettura¶
Sulla Table è possibile eseguire una serie di operazioni di lettura e scrittura. Vediamo innanzitutto le operazioni di lettura:
per la lettura di un solo elemento, la record e readColumns
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.
Parametri:
Nome parametro |
Tipo |
Descrizione |
---|---|---|
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) |
Allegati:
Autore della sezione: Davide Paci