English
Instant Developer Foundation Documentazione
  • Note di rilascio
  • Versioni precedenti
  • Versione 8.5.3800
  • Miglioramenti

ID: Variabile FOUND di SelectIntoVariables

copia link

Descrizione

La variabile FOUND è una variabile che viene valorizzata a True se l'istruzione SelectIntoVariables recupera almeno un record. Può essere creata nel modo indicato in figura:


Creazione di variabile FOUND. E' sufficiente scrivere il nome della variabile selezionando nel visual code editor il testo "Select Into Variables". Instant Developer creerà una nuova variabile booleana chiamata Trovati che verrà valorizzata a True se la query della Select Into Variables restituisce almeno una riga.

Le versioni precedenti di Instant Developer valorizzavano la variabile FOUND a True solo se la query restituiva dati ed almeno una delle colonne delle righe restituite dalla query era non nulla. Quindi la variabile FOUND della seguente query

    select into variables (Esiste)
       set ValoreDato := Valore
    from
       Dati // Tabella Master
    where
       ID = ONE

se la proprietà ValoreDato è opzionale e NULL per la riga avente ID=1 non valorizzava a True la variabile Esiste nonostante la query restituisse una riga. Il fatto che non venisse usato semplicemente il numero di righe restituite dalla query ma venisse controllato che almeno una delle colonne fosse diversa da NULL è dovuto al fatto che vi sono query particolari che restituiscono comunque una riga anche se la query non restituisce valori. Per esempio la query:

    select into variables (Esiste)
       set ValoreDato := Max(Valore)
    from
       Dati // Tabella Master
    where
       ID = C10000000

se la tabella non contiene record aventi ID = 10000000 restituisce comunque una riga con valore NULL nella colonna.

Il comportamento appena descritto si mainfesta solo se tutte le colonne della query sono aggregate. Pertanto nella versione 8.5 di Instant Developer è stato migliorato il calcolo della variabile FOUND che ora funziona nel modo seguente:

  • Se tutte le colonne della query contengono espressioni aggregate viene utilizzato il vecchio metodo (si verifica che almeno una colonna restituita dalla query sia diversa da NULL); in questo modo se viene restituita una riga contenente solo valori NULL la variabile FOUND rimane inizializzata al valore False;
  • se almeno una colonna della query non contiene espressioni aggregate alla variabile FOUND viene assegnato il valore True se la query restituisce almeno una riga. In tal caso, infatti, non si manifesta il problema descritto sopra per cui il fatto che la query restituisca almeno una riga è sufficiente per indicare che la query restituisce dati validi.

Funzionalità interessate

L'uso della variabile FOUND legata ad un'istruzione di tipo SelectIntoVariables.

Ultima modifica: 23/03/2021 / Validità: da 8.5.3800

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum