itemsNullable

La opción de descriptor de construcción itemsNullable especifica la circunstancia en la que el código puede establecer campos primitivos en NULL.

Los valores válidos son los siguientes:
NO (valor por omisión)
No puede establecer campos primitivos en NULL excepto en este caso:
  • El campo es un campo primitivo en un registro no fijo o es un campo de estructura en un registro SQL y
  • La propiedad de nivel de campo isNullable está establecida en yes.

Este comportamiento es coherente con VisualAge Generator y con versiones anteriores de EGL.

YES
Puede establecer cualquiera de los campos siguientes en NULL:
  • Una variable primitiva, autónoma o en un registro no fijo
  • Un campo de estructura en un registro SQL

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.

Tabla 1. Efecto de itemsNullable
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

Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.