Cobol en español
MANUALES
TEMATICOS
BASES DE DATOS
COBOL / WINDOWS
COBOL / UNIX
HISTORIA /DOCS
PROGRAMANDO-Dos
TRUCOS
AÑO 2.000
TEORIA POWCOB-3
PROG. POWCOB-3
TEORIA POWCOB-5
PROG. POWCOB-5
OCX-ESCOBOL
Manuales
TEMARIOIntroducción
Identification Division
Environment Division
Data Division
Procedure Division
Instr. de Cálculo
Instr. de Archivos
Instr. de Pantalla
Instr. de Variables
Instrucción Perform

Environment Division

página(s) : 2/2
(1905 palabras totales en este texto)
(161722 Lecturas)   Versión Imprimible



Cláusula ACCESS MODE indica el modo de acceso al fichero, puede ser SEQUENTIAL, RANDOM o DYNAMIC, si no se especifica ninguno o si el fichero es SEQUENTIAL entiende que el modo será SEQUENTIAL.
RANDOM indica que accederemos a el aleatoriamente por su clave y DYNAMIC (la mas utilizada) con la que podremos acceder al fichero en el modo que queramos dentro del programa, unas veces secuencialmente, si nos interesa, otras veces por su clave.

Cláusula RECORD KEY se utiliza solo si el fichero es indexado y en el decimos cual es el nombre de la clave por la cual accederemos a los registros. Esta deberá ser alfanúmerica y tendrá que estar especificada en la FD del fichero. Si el archivo fuera RELATIVE, esta clausula se sustituiría por RELATIVE KEY e indicará el número de registro del fichero, deberá estar declarado en la WORKING-STORAGE SECTION como una variable numérica sin signo.

Cláusula ALTERNATE RECORD KEY solo para ficheros indexados e identifican una o mas claves alternadas para nuestros registros, por ejemplo en un fichero de clientes cuya clave principal sería el código, podríamos asignar como clave alternativa el NIF, y podríamos acceder a el por las dos claves, bien por código o bien por NIF, será también alfanumérico y deberá también estar declarado en la FD. Si aparece WITH DUPLICATES, indica que ésta clave alternativa pudiera estar duplicada, por ejemplo si hubieramos escogido como clave alternada además del NIF, el Nombre del cliente, podría darse el caso de que dos clientes tuvieran el mismo nombre.

Cláusula FILE STATUS aqui damos un nombre de una variable que especificaremos en la WORKING como un campo alfanumérico de dos caracteres donde el programa depositará el código de error que ocurra en el fichero, dependiendo del valor nosotros podremos operar o hacer alguna acción en concreto.

El párrafo I-O CONTROL se utiliza par indicarle al programa cuantos archivos van a utilizar el mismo area de memoria para trabajar, os puedo decir poco mas de éste párrafo porque yo no lo he utilizado nunca (lo que no quiere decir que no sea útil).


Ejemplo:

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. RMCOBOL.
OBJECT-COMPUTER. RMCOBOL.
SPECIAL-NAMES. DECIMAL-POINT IS COMMA.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT CLIENTES ASSIGN TO RANDOM "C:DATOSCLIENTES.DAT" ORGANIZATION INDEXED
ACCESS DYNAMIC RECORD KEY KEY-CLIENTE ALTERNATE RECORD KEY-CLIENTE1 FILE STATUS STACLI.
SELECT IMPRESORA ASSIGN TO PRINT "PRINTER".
Hemos declarado el archivo CLIENTES como indexado con dos claves, una principal KEY-CLIENTE y otra alternativa KEY-CLIENTE1 y hemos asignado una variable para guardar los posibles códigos de error para cuando operemos con éste fichero STACLI. Al indicarle el acceso dinámico le decimos que una vez dentro del programa podremos acceder al fichero secuencialmente o bien directacmente al registro que queramos por cualquiera de las claves.

Como el fichero IMPRESORA es secuencial no es necesario ninguna aclaración, al darle el nombre PRINTER cojerá la impresora que tengamos por defecto, si le damos cualquier otro nombre que no identificara a ninguna impresora, el resultado sería grabar todo lo que debería salir por la impresora en un archivo con ese nombre.

Nota final:
Creo que es una de las partes mas interesantes de la programación cobol y que cuando he utilizado alguno de éstos nuevos lenguajes orientados a objetos y que utilizan bases de datos, siempre he echado en falta. Para mi siempre es grato dirigirme a la Environment de cualquier programa y saber con exactitud todos los ficheros que se van a utilizar en ese programa.

Apreciar que para cada especificación de fichero en la Select solo se pone el punto al final de todas las clausulas del párrafo.

Al asignar la impresora, si asignamos el nombre PRINTER, éste hace referencia a la impresora por defecto pero tambien podríamos utilizar un nombre para especificar una impresora de red, por ejemplo, si en nuestra red existe una impresora que esta en PENTIUMHPLASER, podemos identificar un nombre en el Autoexec.bat para asignar ese valor a una variable de entorno como: IMPRE="PENTIUMHPLASER" y luego en el programa especificar como nombre de dispositivo de la impresora IMPRE, SELECT IMPRESORA ASSIGN TO PRINT IMPRE.

En realidad haciendo ésto último podemos asignar cualquier archivo que esté en cualquier dirección de la red, ya que el nombre que damos es lógico y su asignación la podemos definir con una variable de entorno donde queramos.

(1/2) Anterior |    Inicio de Página   
Sitio desarrollado con PHP-Nuke. Todos los Derechos Reservados.
PHP-Nuke es un Software Libre realizado con licencia GNU/GPL.
Página creada en Junio de 1.998, con el proposito de difundir el lenguaje Cobol en nuestra lengua.
Andres Montes [98/11]