Inicialización de datos

Si un programa generado por EGL inicializa un registro automáticamente (como ocurre en algunos casos, que se describen más adelante), cada uno de los elementos de estructura de nivel más bajo se establece en un valor que sea apropiado para el tipo primitivo. La inicialización de formulario es similar, excepto que la declaración de formulario puede asignar valores que alteran temporalmente los valores por omisión.

La inicialización también se produce en las siguientes situaciones:

La tabla siguiente ofrece detalles sobre los valores de inicialización.

Tipo primitivo Valor de inicialización
ANY La variable no es de un tipo definido
BIN y los tipos de entero (BIGINT, INT y SMALLINT), HEX, FLOAT, SMALLFLOAT Ceros binarios
CHAR, MBCHAR Blancos de un solo byte
DATE, TIME, TIMESTAMP Valor actual del reloj del sistema (para el número de bytes necesarios para la máscara en el caso de TIMESTAMP)
DBCHAR Blancos de doble byte
DECIMAL, MONEY, NUM, NUMC, PACF Ceros numéricos
INTERVAL Ceros numéricos (para el número de bytes necesarios para la máscara), precedidos de un signo más
UNICODE Blancos Unicode (cada uno de los cuales es hexadecimal 0020)

En una estructura, sólo se tienen en cuenta los elementos de estructura de nivel más bajo. Si, por ejemplo, un elemento de estructura de tipo HEX está subordinado a un elemento de estructura de tipo CHAR, el área de memoria se inicializa con ceros binarios.

Los registros o elementos que se reciben como parámetros de programa o función no se inicializan nunca automáticamente.

Un programa Java generado por EGL inicializa registros, que pueden ser locales o globales.

Un programa COBOL generado por EGL inicializa el registro de entrada, que está identificado en las propiedades del programa. La inicialización de otros registros depende de si se establece la propiedad initialized para una determinada variable. En caso contrario, la inicialización de registros depende de cómo se establecen dos opciones del descriptor de construcción durante la generación:

De acuerdo con el comportamiento de los programas COBOL en general, los programas COBOL generados por EGL no inicializan los registros locales.

Si genera un programa COBOL que compara un elemento de tipo NUM con un elemento de tipo CHAR, asegúrese de que el código inicializa los elementos; en caso contrario, la comparación puede hacer que el programa falle con una finalización anómala, en cuyo caso no se ejecuta ningún código de manejo de excepciones. Un aviso similar y específico de COBOL se aplica a elementos de estructura de estructuras o registros locales.

Conceptos relacionados
Componente de función
Componente dataItem
Componente de programa
Componentes de registro
Estructura fija

Consulta relacionada
Sentencias EGL
initNonIOData
initIORecords
set

Condiciones de uso | Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.