Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describe cómo usar valores de datos NULL en los comandos y funciones de Visual FoxPro.
Versión original del producto: Visual FoxPro
Número de KB original: 130307
Resumen
Visual FoxPro versión 3.0 admite valores de datos NULL. Las versiones de FoxPro anteriores a la versión 3.0 no admitieron directamente valores de datos NULL. En este artículo se describen las reglas generales que Visual FoxPro sigue para controlar valores NULL (representados como .NULL.
) cuando se pasan a los comandos o funciones de Visual FoxPro.
Más información
Use un valor NULL (.NULL.
) cuando falte un valor, sea irrelevante o desconocido. En versiones anteriores de FoxPro, los valores desconocidos o que faltaban se representaron mediante espacios o ceros, lo que podría haber sido malinterpretado. Con Visual FoxPro, ahora puede almacenar un valor NULL en un campo.
Es importante tener en cuenta que un valor NULL (.NULL.
) en Visual FoxPro no es el mismo que un valor vacío, en blanco o cero. Null representa la ausencia de un valor, por lo que null nunca es igual a, mayor o menor que otro valor, null o distinto de null. La compatibilidad de Visual FoxPro con valores NULL cumple con los estándares ANSI y afecta a cualquier área del producto en la que se usen valores y expresiones.
Reglas generales para valores NULL
Estas son las reglas generales para los valores NULL pasados a los comandos o funciones de Visual FoxPro:
Los comandos generan un error cuando se pasa un valor NULL.
Las funciones que aceptan valores NULL devuelven
.NULL.
como resultado.Las funciones que esperan un valor numérico generarán un error si se proporciona con un valor NULL.
ISBLANK()
,ISDIGIT()
,ISLOWER()
,ISUPPER()
,ISALPHA()
yEMPTY()
cada uno devuelve false (.F.) cuando se pasa un valor NULL.ISNULL()
devuelve true (.T.) cuando se pasa un valor NULL.Los comandos
INSERT
SQL ySELECT
SQL procesan valores NULL a través de las cláusulas IS NULL y IS NOT NULL.Las funciones de agregado de SQL, como
MAX()
,MIN()
ySUM()
omiten todos los valores NULL del agregado.Las funciones de agregado de Visual FoxPro propagan
.NULL.
si todos los valores proporcionados son valores NULL; de lo contrario, se omite cualquier valor NULL.
El resto de este artículo proporciona más información y ejemplos para estas reglas generales.
Los comandos generan un error cuando se pasa un valor NULL
Un comando de Visual FoxPro es una instrucción que da como resultado una acción. Algunos ejemplos de comandos son USE
, BROWSE
y DELETE
. Por ejemplo, el USE
comando devuelve un error para este código:
STORE .NULL. TO nWorkArea
USE mytable IN (nWorkArea)
La cláusula IN del comando USE
espera un valor numérico o alfabético. Cuando se pasa un .NULL.
, se genera el error Número de tabla no válido.
La NVL()
función se puede usar para quitar valores NULL de cálculos o operaciones donde no se admiten valores NULL o no son relevantes.
STORE .NULL. TO nWorkArea
USE mytable IN NVL(nWorkArea,0)
Esto abriría _mytable_ en el primer área de trabajo disponible. Consulte el archivo de ayuda o la documentación de Visual FoxPro para obtener más información sobre la NVL()
función.
Las funciones que aceptan valores NULL devuelven . NULO. como resultado
Una función de Visual FoxPro es una rutina que realiza una tarea específica y toma cero o más argumentos. Algunos ejemplos de funciones son ISBLANK()
, UPPER()
y SUBSTR()
. La mayoría de las funciones de Visual FoxPro permiten pasar un valor NULL como argumento sin generar un error; sin embargo, se devuelve un .NULL.
valor de la función . En otras palabras, cuando se pasa un valor NULL a una función, el resultado siempre es NULL. Esto también es cómo se tratan los valores NULL en ecuaciones matemáticas. Por ejemplo, un valor NULL agregado a 500 es igual a NULL y un valor NULL multiplicado por cero es null (no cero).
El código de ejemplo siguiente devuelve .NULL.
:
cLastName = "Johnson"
nBegin = 5
nExtract = .NULL.
?SUBSTR(cLastName,nBegin,nExtract)
Las excepciones a esta regla son las ISBLANK()
funciones , ISDIGIT()
, ISLOWER()
, ISUPPER()
, ISALPHA()
y EMPTY()
, cada una de las cuales devuelve un .F.
valor. La ISNULL()
función devuelve un .T.
valor.
INSERT SQL y SELECT SQL procesan valores Null utilizando nuevas cláusulas
Dos nuevas cláusulas (IS NULL y IS NOT NULL) controlan valores NULL en los comandos SQL INSERT
y SELECT
. Por ejemplo, para buscar todos los registros de una tabla donde cLastName no es null, use este comando:
SELECT cLastName FROM mytable WHERE cLastName IS NOT NULL
Para buscar valores NULL, use la cláusula IS NULL.
Funciones de agregado de SQL omiten valores nulos
Una función de agregado es una función que realiza una operación numérica como suma, mínimo, máximo o promedio en un grupo (agregado) de valores. Algunos ejemplos de funciones de agregado son MAX()
, MIN()
y SUM()
.
El SELECT
comando SQL, por ejemplo, puede usar funciones de agregado para recuperar valores numéricos de tablas. Por ejemplo, el siguiente SELECT
comando devuelve el valor máximo de un campo denominado nYTDSales
:
SELECT MAX(nYTDSales) from mytable
Cualquier función de agregado de SQL realizada en un campo que contiene .NULL.
valores omite los .NULL.
valores, devolviendo un resultado que trata los valores NULL como si no existiera (no forman parte del agregado).
Para obtener más información sobre el .NULL.
valor y las funciones descritas anteriormente, busque temas en el archivo de ayuda de Visual FoxPro.