Desarrollando en Cobol y Natural sobre Plataforma Mainframe

jueves, 12 de marzo de 2015

Comandos Natural de acceso a ficheros ADABAS (y 2)

En la primera parte del post comenzamos a revisar, hace algunas semanas, la lista de instrucciones utilizadas para la conexión Natural ADABAS. Recordemos que una de las ventajas principales del lenguaje Natural es su facilidad para interaccionar con la base de datos ADABAS.

Ya estuvimos viendo los que son considerados como los comandos más importantes a este respecto (ver post Comandos Natural de acceso a ficheros ADABAS - 1). A continuación, trataremos de completar la revisión enumerando el resto de cláusulas que pueden ser utilizadas en la conexión Natural ADABAS.

- FIND: Esta instrucción sirve para buscar un registro o un grupo de registros en el fichero ADABAS sin necesidad de usar un superdescriptor. Normalmente, a diferencia de la instrucción READ, se utiliza para procesar un número reducido de registros. En general, no se suele emplear en las instalaciones debido al elevado consumo de recursos que conlleva.

FIND CLIENTES WITH APELLIDO1 = ’ALDEGUER’

 

- GET SAME: Este comando se emplea para obtener de nuevo la información del registro que está siendo procesado en ese momento.

GET SAME VALOR

- GET TRANSACTION DATA: Con esta cláusula podremos recuperar la información que haya sido almacenada en la última transacción con la instrucción END TRANSACTION.

GET TRANSACTION DATA CLIENTES-ET

- HISTOGRAM: Este comando nos permite extraer los datos de los campos del fichero ADABAS que hayan sido definidos como descriptores o que formen parte de un superdescriptor. En general, el uso de esta sentencia está prohibido en las instalaciones debido a su alto consumo de recursos.

HISTOGRAM CLIENTES DNI STARTING FROM '1'
  DISPLAY DNI *NUMBER *COUNTER
END-HISTOGRAM

- OBTAIN: Esta instrucción se utiliza para poner a disposición una serie de ocurrencias de una matriz ADABAS en almacenamiento continuo.

OBTAIN VALOR

 

De los comandos indicados, los que se suelen emplear con mayor frecuencia son READ, UPDATE, STORE, DELETE y GET, junto con las sentencias END TRANSACTION y BACKOUT TRANSACTION. Con estas 7 instrucciones tendremos suficiente para realizar el 90% de los accesos a la base de datos ADABAS.

Como vemos, el uso de estos comandos es muy intuitivo y, como decíamos más arriba, las sentencias son más sencillas de codificar que en el caso de otros lenguajes como Cobol o Java. De hecho, a pesar de su antigüedad, la sencillez de acceso a la base de datos sigue siendo una de las ventajas competitivas del lenguaje Natural.

 

Como siempre, lo importante para hacernos con el control de estas sentencias es practicar. En este caso, debido a la similitud de Natural con los lenguajes clásicos de programación, el tiempo requerido para adaptarnos a su funcionamiento es muy inferior al de los modernos lenguajes orientados a objetos.

Y nada más. Con lo comentado debería ser suficiente para hacernos con una idea de cuáles son los comandos que vamos a necesitar para acceder a ADABAS desde Natural. Ahora ya es cuestión de cada uno aprovechar este conocimiento o no...

Saludos.

2 comentarios:

  1. Me gustaría obtener programas de ejemplo, mi correo es chacon_ven72@hotmail.com, gracias.

    ResponderEliminar
  2. Buenas, primero felicitarlos por la gran iniciativa de dar información sobre Natural/ADABAS. Quería hacer un pequeño comentario u observación con respecto al histogram. Normalmente esta instrucción Natural no se usa tanto en las instalaciones debido a la falta de disponibilidad de información que devuelve la instrucción y no a su alto consumo. De hecho yo diría que es una de las instrucciones con menos consumo, solo hay que acotar y definir bien su uso, ya que genera loops que hay que saber delimitar y definir muy bien. De los 4 principales componentes de ADABAS(Associator, Inverted Lists, Data Area y Working Area) el Histogram lee los datos directa y unicamente de las listas invertidas por lo que no se tiene acceso a mas información que la que hay en esa estructura(*isn, *number & *counter) no mas de ahí. Así que solo es una muy buena instrucción solo para saber si los valores de cierto descriptor o superdescriptor existen y cuanto hay. No se puede obtener ningun otro valor de otro campo del registro ya no se usa la DATA Area que es donde reciden los valores de los registros almacenados.

    ResponderEliminar

Related Posts Plugin for WordPress, Blogger...