DEPRECATED!
Con las nuevas versiones de COBOL, como COBOL 6, las cosas han cambiado!
----------------------------------------------------------------------------------------------------------------------
Alguna vez os habéis preguntado cual es el máxino número de OCCURS que puede tener una tabla interna??? Vamos a ver algunos números curiosos : )
Líneas de un programa:
El nº máximo de líneas que puede tener un programa son 999.999 líneas. Sinceramente, encontrarse un programa así de largo haría que nos acordásemos de toda la familia del que tuvo la idea...
En dos palabras, in-mantenible^^
Ficheros:
El nº máximo de ficheros por programa es de 65.535 ficheros.
Y si tal que haya que cruzarlos!!!
Longitud de fichero:
La longitud máxima que puede tener un fichero en su RECORD es de 1.048.575 posiciones.
Total na.
Variables de working:
La suma de las variables definidas en la WORKING-STORAGE, no podrá pasar de 134.217.727. Lo mismo para la LINKAGE-SECTION.
EVALUATE:
El nº máximo de cláusulas WHEN en un EVALUATE será de 256.
Si que son posibilidades!
PERFORM:
A lo largo del programa sólo podremos utilizar 4.194.303.
Debe ser por si queremos codifcar el programa de 999.999 líneas...
OCCURS:
El número máximo de occurs que podrá tener una tabla interna será de 16.777.215.
USING en la procedure:
Cuando tengamos un programa con LINKAGE SECTION, el máximo de variables que podremos incluir en la PROCEDURE DIVISION USING ... será de 32.767.
Cláusula VALUE:
El total de las longitudes de los valorse incluidos en las cláusulas VALUE no podrá superar los 16.777.215.
Todo esto y mucho más lo podéis encontrar en el apéndice B del manual de IBM
Enterprise COBOL for z/OS and OS/390 IBM
Language Reference
16 comentarios:
Vaya números, creo que me he quedado cerca en alguno, pero no lo he superado.
Esto es coherente?
PERFORM:
A lo largo del programa sólo podremos utilizar 4.194.303.
Líneas de un programa:
El nº máximo de líneas que puede tener un programa son 999.999 líneas.
tengo una duda, Cuantas variables como maximo puede tener una copy cobol? tantas cuya suma de posiciones no sea superior a la longitud maxima de un fichero?
Por cierto, gracias por estas "ayudas" sobre cobol, sacan de apuros en mas de una ocasion ^^
Si es coherente, si codificaras 4.194.303 PERFORM es por que eres un animal y tu programas es probable que tengas 999.999 líneas.
jajaja
La verdad es q un poco animal sí que seriá... xd
No es coherente. Como vas a tener mas PERFORM que líneas de código??
jijiji
El manual de IBM lo dice claramente xd
Pues lo mismo se refiere que contando todos los CALLs que hagas o COPYs que añadas como máximo podrás tener 4.194.303 PERFORM entre todos. Pero vaya, que no lo hemos comprobado, solamente lo ponemos como curiosidad que figura en el manual de IBM, si alguien está decidido a comprobarlo ;)...
Falta poner que una variable numerica no puede ser de mas de 18 posiciones
¿ Cuantas CALL... segun vosotros ? Gracias.
Hola Fernando. Según IBM:
CALL id/lit USING id/lit... 16380
:-)
Como faço para identificar um OFFSET em minha compilação ??? Existe algum comando para isso ???? Na minha compilação atual não aparece a informação do OFFSET.
Buen día.
En la Linkage Section cual sería la longitud total máxima de datos que se pueden enviar si sumamos todos los campos declarados en esta sección ??
Saludos
Buen día.
En la Linkage Section cual sería la longitud total maxima de datos que se pueden enviar si sumamos todos los campos declarados en esta seccion ??
Saludos
Lo mismo que la working, 134.217.727 posiciones :-)
El link "apéndice B del manual de IBM" está down