Eseguire query database nel codice
copia linkTrascrizione

La logica documentale consente di non preoccuparsi delle operazioni fisiche svolte dall’applicazione verso il database ed anche come le istruzioni SQL necessarie vengono scritte; però è anche vero che oltre alle dinamiche documentali, potremmo avere necessità, di eseguire Query di selezione SQL, o Query di comando SQL nel codice : ad esempio se volessimo contare il numero di record recuperati in una tabella oppure ottenere un recordset di dati con JOIN tra tabelle o cancellare con una istruzione tutti i record che soddisfano un criterio; ecco che per queste ed altre necessità nel Visual Code Editor possiamo scrivere anche istruzioni SQL utilizzando questi costrutti:
select into variables: Esegue una query SQL il cui risultato sarà al massimo 1 record, ed i valori dei campi verranno attribuiti a variabili.
for each select: Esegue una query SQL, il cui risultato potrà essere più di un record; l’istruzione è anche un ciclo così si possono analizzare i dati record per record.
select into recordset: Esegue una query SQL, il cui risultato potrà essere più di un record e verrà attribuito ad una variabile complessa di tipo Recordset; sarà possibile ciclare sui record del recordset con una logica a cursore ed analizzare le colonne (campi) di ogni record.
select into collection: Esegue una query SQL, il cui risultato potrà essere più di un record e verrà attribuito a una variabile complessa di tipo IDCollection: ogni record viene trasformato in documento.
Questo per quanto riguarda le Query di Selezione, vi è poi l’opportunità di eseguire anche Query di comando utilizzando:
Nell'applicazione YouBb è presente un metodo documentale ancora da concludere, precisamente nel documento Prenotazione il metodo canBooking; il metodo deve restituire un valore boolean TRUE/FALSE ad indicare se l’appartamento è prenotabile oppure già occupato nel periodo indicato.
Per forza di cose per ottenere il risultato dobbiamo eseguire una query di selezione e siccome la risposta dal database sarà 1 record a 1 colonna possiamo utilizzare il costrutto select into variables.
Iniziamo a scrivere nel codice la query:
Select into variables
count()
From Prenotazione
Where idAppartamento = IDAPPARTAMENTO
ID != ID
Partenza > ArrivoDB and Partenza <=PartenzaDB
OR
Arrivo >= ArrivoDB and Arrivo < PartenzaDB
OR
Arrivo <= ArrivoDB and Partenza >= PartenzaDB
Ovviamente se il numero di prenotazione è maggiore di 0 significa che l’appartamento è occupato quindi canbooking sarà FALSE.
Utilizzando la logica documentale, di questi costrutti SQL non ne sentirete quasi mai il bisogno: sicuramente vi potrà capitare una necessità come quella che abbiamo visto insieme ed infatti l’istruzione select into variables è anche la più utilizzata rispetto alle altre.
select into variables: Esegue una query SQL il cui risultato sarà al massimo 1 record, ed i valori dei campi verranno attribuiti a variabili.
for each select: Esegue una query SQL, il cui risultato potrà essere più di un record; l’istruzione è anche un ciclo così si possono analizzare i dati record per record.
select into recordset: Esegue una query SQL, il cui risultato potrà essere più di un record e verrà attribuito ad una variabile complessa di tipo Recordset; sarà possibile ciclare sui record del recordset con una logica a cursore ed analizzare le colonne (campi) di ogni record.
select into collection: Esegue una query SQL, il cui risultato potrà essere più di un record e verrà attribuito a una variabile complessa di tipo IDCollection: ogni record viene trasformato in documento.
Questo per quanto riguarda le Query di Selezione, vi è poi l’opportunità di eseguire anche Query di comando utilizzando:
- insert into: L’istruzione consente di inserire nuovi record in una tabella
- update: L’istruzione consente la modifica di record di una tabella
- delete from: L’istruzione consente la cancellazione di record di una tabella
Nell'applicazione YouBb è presente un metodo documentale ancora da concludere, precisamente nel documento Prenotazione il metodo canBooking; il metodo deve restituire un valore boolean TRUE/FALSE ad indicare se l’appartamento è prenotabile oppure già occupato nel periodo indicato.
Per forza di cose per ottenere il risultato dobbiamo eseguire una query di selezione e siccome la risposta dal database sarà 1 record a 1 colonna possiamo utilizzare il costrutto select into variables.
Iniziamo a scrivere nel codice la query:
Select into variables
count()
From Prenotazione
Where idAppartamento = IDAPPARTAMENTO
ID != ID
Partenza > ArrivoDB and Partenza <=PartenzaDB
OR
Arrivo >= ArrivoDB and Arrivo < PartenzaDB
OR
Arrivo <= ArrivoDB and Partenza >= PartenzaDB
Ovviamente se il numero di prenotazione è maggiore di 0 significa che l’appartamento è occupato quindi canbooking sarà FALSE.
Utilizzando la logica documentale, di questi costrutti SQL non ne sentirete quasi mai il bisogno: sicuramente vi potrà capitare una necessità come quella che abbiamo visto insieme ed infatti l’istruzione select into variables è anche la più utilizzata rispetto alle altre.
Ultima modifica: 19/03/2021 / Validità: da 20.5.8000