Usare valori Null in Visual FoxPro

Questo articolo descrive come usare valori di dati Null nei comandi e nelle funzioni di Visual FoxPro.

Versione originale del prodotto: Visual FoxPro
Numero KB originale: 130307

Riepilogo

Visual FoxPro versione 3.0 supporta valori di dati Null. Le versioni di FoxPro precedenti alla versione 3.0 non supportavano direttamente i valori dei dati Null. Questo articolo descrive le regole generali che Visual FoxPro segue per la gestione dei valori Null (rappresentati come .NULL.) quando vengono passati a comandi o funzioni di Visual FoxPro.

Ulteriori informazioni

Usare un valore Null (.NULL.) quando un valore è mancante, irrilevante o sconosciuto. Nelle versioni precedenti di FoxPro, i valori sconosciuti o mancanti erano rappresentati da spazi o zeri, che avrebbero potuto essere interpretati erroneamente. Con Visual FoxPro è ora possibile archiviare un valore Null in un campo.

È importante notare che un valore Null (.NULL.) in Visual FoxPro non corrisponde a un valore vuoto, vuoto o zero. Null rappresenta l'assenza di un valore, quindi null non è mai uguale a, maggiore o minore di un altro valore, null o non Null. Il supporto di Visual FoxPro per i valori Null è conforme agli standard ANSI e influisce su qualsiasi area del prodotto in cui vengono usati valori ed espressioni.

Regole generali per i valori Null

Di seguito sono riportate le regole generali per i valori Null passati ai comandi o alle funzioni di Visual FoxPro:

  • I comandi generano un errore quando viene passato un valore Null.

  • Di conseguenza, le funzioni che accettano valori Null restituiscono .NULL. .

  • Le funzioni che prevedono un valore numerico genereranno un errore se fornite con un valore Null.

  • ISBLANK(), ISDIGIT(), ISLOWER(), ISUPPER(), ISALPHA(), e EMPTY() restituiscono false (.F.) quando viene passato un valore Null.

  • ISNULL() restituisce true (.T.) quando viene passato un valore Null.

  • I comandi INSERT SQL e SELECT SQL elaborano i valori Null tramite le clausole IS NULL e IS NOT NULL.

  • Funzioni di aggregazione SQL, ad MAX()esempio , MIN()e SUM() ignorano tutti i valori Null nell'aggregazione.

  • Le funzioni di aggregazione .NULL. di Visual FoxPro si propagano se tutti i valori forniti sono valori Null. In caso contrario, qualsiasi valore Null viene ignorato.

Nella parte restante di questo articolo vengono fornite altre informazioni ed esempi per queste regole generali.

I comandi generano un errore quando viene passato un valore Null

Un comando Visual FoxPro è un'istruzione che genera un'azione. Esempi di comandi sono USE, BROWSEe DELETE. Ad esempio, il USE comando restituisce un errore per questo codice:

STORE .NULL. TO nWorkArea
USE mytable IN (nWorkArea)

La clausola IN del USE comando prevede un valore numerico o alfa, quando viene generato l'errore .NULL.Numero tabella non valido .

La NVL() funzione può essere usata per rimuovere valori Null da calcoli o operazioni in cui i valori Null non sono supportati o non sono rilevanti.

STORE .NULL. TO nWorkArea
USE mytable IN NVL(nWorkArea,0)

Verrà aperta la tabella mytable nella prima area di lavoro disponibile. Per altre informazioni sulla funzione, vedere il file della Guida o la NVL() documentazione di Visual FoxPro.

Le funzioni che accettano valori Null restituiscono . NULL. di conseguenza

Una funzione Visual FoxPro è una routine che esegue un'attività specifica e accetta zero o più argomenti. Esempi di funzioni includono ISBLANK(), UPPER()e SUBSTR(). La maggior parte delle funzioni Visual FoxPro consente di passare un valore Null come argomento senza generare un errore, ma viene restituito un .NULL. oggetto dalla funzione . In altre parole, quando si passa un valore Null a una funzione, il risultato è sempre Null. Questo è anche il modo in cui i valori Null vengono trattati nelle equazioni matematiche. Ad esempio, un valore Null aggiunto a 500 è uguale a null e un valore Null moltiplicato per zero è uguale a null (non zero).

Il codice di esempio seguente restituisce .NULL.:

cLastName = "Johnson"
nBegin = 5
nExtract = .NULL.
?SUBSTR(cLastName,nBegin,nExtract)

Le eccezioni a questa regola sono le ISBLANK()funzioni , ISDIGIT(), ISLOWER(), ISUPPER(), ISALPHA()e EMPTY() , ognuna delle quali restituisce un .F. valore. La ISNULL() funzione restituisce un .T. valore.

INSERT SQL e SELECT SQL elaborano valori Null usando nuove clausole

Due nuove clausole (IS NULL e IS NOT NULL) gestiscono i valori Null nei INSERT comandi e SELECT SQL. Ad esempio, per individuare tutti i record in una tabella in cui cLastName non è Null, usare questo comando:

SELECT cLastName FROM mytable WHERE cLastName IS NOT NULL

Per individuare i valori Null, usare la clausola IS NULL.

Le funzioni di aggregazione SQL ignorano i valori Null

Una funzione di aggregazione è una funzione che esegue un'operazione numerica, ad esempio addizione, minima, massima o media in un gruppo (aggregazione) di valori. Esempi di funzioni di aggregazione includono MAX(), MIN()e SUM().

Il SELECT comando SQL, ad esempio, può usare funzioni di aggregazione per recuperare valori numerici dalle tabelle. Ad esempio, il comando seguente SELECT restituisce il valore massimo da un campo denominato nYTDSales:

SELECT MAX(nYTDSales) from mytable

Qualsiasi funzione di aggregazione SQL eseguita su un campo che contiene .NULL. valori ignora i .NULL. valori, restituendo un risultato che considera i valori Null come se non esistessero (non fanno parte dell'aggregazione).

Per altre informazioni sul .NULL. valore e sulle funzioni descritte in precedenza, cercare gli argomenti nel file della Guida di Visual FoxPro.