|
 |
 |
Data Division
página(s) : 1/4 (5050 palabras totales en este texto) (147714 Lecturas) 
Es la tercera division por orden de aparición, y es donde se declaran absolutamente todos los
nombres de campos, registros, variables, es decir donde nombramos cada dato que vayamos a
utilizar en nuestro programa. Para almacenar todos estos nombres de datos, ésta DIVISION
se divide en varias secciones, cada una de ellas orientada a un tipo de datos diferente.
- FILE SECTION. Aqui describiremos todos los campos que componen
los registros de todos los archivos que vayamos a utilizar, que previamente habremos
declarado en la INPUT-OUTPUT SECTION dentro de la ENVIRONMENT DIVISION.
- WORKING-STORAGE SECTION
. En ella declararemos todas las variables no
referentes a archivos, pero que durante la ejecución del programa vayamos a utilizar.
LINKAGE SECTION. Esta es la sección donde se registrarán las
variables que nos servirán para enlazar el programa principal con el que llamemos
mediante la orden CALL.
COMMUNICATION SECTION. (No la he utilizado nunca).
SCREEN SECTION. En ésta sección podremos describir los atributos
y campos a utilizar en las pantallas.
Al igual que en la anterior DIVISION ninguna de sus partes es obligatoria, pero si vamos a utilizar alguna
variable, aunque solo sea una, tendremos que incluirla en la
WORKING-STORAGE SECTION y esto nos obligará tambien a definir la DATA DIVISION.
Pasemos a continuación a explicar mas a fondo cada una de ellas.
FILE SECTION.
En esta sección describiremos
los campos que van a componer el registro de cada uno de los archivos con los que vamos a
trabajar, ésta sería su sintaxis:
FD Nombre del fichero. BLOCK CONTAINS
Numero de registros por bloque RECORDS
RECORD
CONTAINS Número de
caracteres por registro CHARACTERS
LABEL RECORD Etiqueta de registro
DATA RECORD Nombre del registro.
Vamos a explicar un poco mas detalladamente cada cláusula de la FILE SECTION.
Quiero dejar claro que ésta es mas amplia, pero que como en el resto del manual voy a explicar lo que
creo que es mas importante y en definitiva lo que mas se utiliza.
Cláusula
FD
nombre del fichero que previamente habiamos descrito en la cláusula SELECT de la INPUT-OUTPUT
SECTION en la ENVIRONMENT DIVISION.
Cláusula
BLOCK CONTAINS
cuando queremos que por cada bloque en disco se graben mas de un registro,
aqui especificamos el número de ellos que va a contener cada bloque, (512, 1024), si no
se especifica se supone que cada registro va a ocupar un bloque de memoria, o bien será
el propio compilador el que haga el cálculo mas apropiado.
Cláusula
RECORD CONTAINS
el número de caracteres que tiene el registro sumando todos sus campos,
puede ser fija o variable. Si es fija utilizamos un valor y si es variable un rango desde
hasta, si no se espicifica será el propio compilador quien la determine.
Cláusula
LABEL RECORD
puede tener dos valores STANDARD u OMITTED
, el primer caso indica que cada vez que se accede a un registro el
compilador hará las comprobaciones estandares descritas por el propio compilador y en el
segundo éstas serán omitidas. Para el caso de los ficheros de datos en disco se suele
poner STANDARD y cuando el fichero es de impresora se indica OMITTED.
Cláusula
DATA RECORD
debido a que un mismo fichero puede tener varias descripciones de
registro, aqui indicamos los nombre de éstas que deberán estar descritas a nivel 01.
Normalmente no se utiliza y casi siempre se suele utilizar una sola descripción por
fichero, por lo que no suele aparecer en casi ningún programa.
A continuación vendría la descripción
de todos los campos que comprenden el registro, pero antes de ver ésto es aconsejable
tener claro como se define una variable con todas sus opciones ya que a fin de cuentas,
los campos de un registro no son mas que eso, variables, con la única condición de que
al formar parte de un registro la información que contiene nos identifica los datos que
se guardarán en el medio en que esté el fichero (disco, impresora).
Antes de seguir adelante quisiera decir que
siendo el cobol un lenguaje orientado casi exclusivamente al manejo de ficheros de datos,
es sin duda, ésta parte que hemos visto la mas importante. Un buen análisis de los
ficheros a utilizar antes de empezar es fundamental y nos evitará muchos
calentamientos de cabeza, tener claro cuales van a ser sus claves tanto la principal como
las alternativas, definir bien todos sus campos y dejar espacio libre para un posible
aumento de datos. Esto lo digo porque si creamos un fichero con 80 caracteres por registro
y al cabo de un tiempo debemos de introducir un nuevo campo que no habiamos preveido,
tendremos que modificar toda su estructura rehaciendo el fichero y recompilando todos los
programas a los que afecte, si en cambio dejamos un poco de espacio nos evitaremos la
reestructuración del archivo, ésto se consigue utilizando el nombre de variable FILLER como veremos un poco mas abajo.
| | (2/4) |
|
|