La opción de descriptor de construcción itemsNullable especifica la circunstancia en la que el código puede establecer campos primitivos en NULL.
Este comportamiento es coherente con VisualAge Generator y con versiones anteriores de EGL.
El comportamiento es coherente con el producto I4GL de Informix, pero no está disponible para componentes de servicio o para componentes de interfaz del tipo basicInterface.
Si un programa invoca una función que está en una biblioteca EGL, tanto el programa como la biblioteca deben haberse generado con el mismo valor para itemsNullable; de lo contrario, se produce un error al compilar el programa.
La tabla siguiente muestra otros efectos de la decisión.
Operación | ItemsNullable se establece en NO | ItemsNullable se establece en YES |
---|---|---|
Establecer un campo nulo | No es posible para campos externos a un registro SQL | Puede establecer NULL asignado una serie vacía ("") a un campo |
Probar un campo nulo | No es posible para campos externos a un registro SQL | Puede probar NULL probando el resultado de pasar la serie a la
función StrLib.clip:myString String = ""; // indica que // la variable es NULL if (StrLib.clip(myString) is NULL) ; end |
Asignar un campo nulo a otro campo | El valor del origen es 0 o espacio en blanco y la asignación copia tanto un valor (si el destino tiene capacidad de nulos) como el estado NULL | Si el destino tiene capacidad de nulo, se establece en NULL. De lo contrario, el destino se establece en 0 o en un espacio en blanco. |
Concatenar una serie de longitud limitada con otra serie | La serie de longitud limitada no se rellena | La serie de longitud limitada se rellena con blancos para ampliar la serie hasta la última posición especificada en la declaración de la serie. |
Utilizar un campo nulo en una expresión numérica | El campo se trata como si contuviera un 0 | La expresión se resuelve en NULL |
Utilizar un campo nulo en una expresión de texto | El campo se trata como si contuviera un espacio | El campo se trata como si hubiera una serie vacía |
Utilizar un campo nulo en una expresión lógica | La expresión se trata como si el valor del campo fuera 0 o un espacio en
blanco, con el ejemplo siguiente que se resuelve en TRUE: 0 == null |
La expresión se resuelve en TRUE solo si nulo se compara con nulo, como no es
el caso en el ejemplo siguiente, que se resuelve en FALSE:0 == null |
SET campo vacío | El estado nulo es no establecido | El estado nulo es establecido |
SET registro vacío | El estado nulo es no establecido | El estado nulo es establecido |
Consulta relacionada
Opciones del descriptor de construcción