Escolar Documentos
Profissional Documentos
Cultura Documentos
26-11-2007
pascual89@hotmail.com
0.- INTRODUCCIN:
El presente documento pretende ser una resumida gua de referencia introductoria para para programadores que trabajen por primera vez con Natural Adabas en entorno Mainframe. Adabas es una base de datos diseada por Software AG para sistemas crticos y Natural el lenguaje de programacin para operar con esta base de datos. Es conveniente tener un manual de referencia sobre Natural para poder sacar ms partido de este lenguaje de programacin.
2.- COMENTARIOS:
Se comenta cdigo con * y /* * Comentario para una lnea entera. MOVE 2 TO A /* Comentario para el resto de lnea
END-DEFINE En PARAMETER se incluyen las reas de datos que sirven como comunicacin de entrada y salida entre los distintos objetos NATURAL. En LOCAL se declaran las variables,o vistas de ADABAS que se vayan a usar localmente en el programa.Podemos encontrarnos con la instruccin: PARAMETER USING Area_de_parametros. Esta instruccin declara Area_de_parametros como el area de comunicacin de E/S entre los distintos objetos de NATURAL. LOCAL USING Area_de_parametros. Esta instruccin hace que Area de parmetros sea usada localmente en una llamada a cierto subprograma. Las variables van precedidas de un nmero que corresponde con el nivel de declaracin al que pertenecen. Se empieza por nivel 1 o 01, los niveles 02,03 (sucesion secuencial) etc nos indican que esas variables son subdivisiones de la variable que esta declarada un nivel inmediatamente superior.
5.- ARRAYS:
DEFINICIONES
*ARRAY(3) Define una matriz de una dimensin de 3 ocurrencias. ETIQUETA.FIELD(A 20/5) Define una matriz de un campo de la base de datos referenciada en la sentencia marcada por ETIQUETA, con formato alfanumrico, longitud 20 y 5 ocurrencias. * ARRAY(N7.2/1:5,10.12,1:4) Define una matriz con formato N7.2, de 3 dimensiones con 5 ocurrencias en la primera dimensin ,12 en la segunda y 4 en la tercera.
AREA DE PARAMETROS: Fuente donde se declaran variables o vistas para pasarlas como parmetros a subprogramas,subrutinas externas etc. CLASE: Las clases son unos objetos que se usan en conjunto con NaturalX para crear componentes basados en aplicaciones cliente/servidor. DIALOGO: Los dilogos son objetos que se usan en conjunto con programacin orientada a eventos para crear aplicaciones en entorno grfico.
COMPUTE RES = NUM1 + NUM2 RESTA: SUBTRAC 4 FROM B /* Resta 4 a B*/ SUBTRAC 6 FROM 11 GIVING B /* Resta 6 a 11 y lo guarda en B */ COMPUTE RES = NUM1 - NUM2 MULTIPLICACION: A=3 MULTIPLY A BY 3 MULTIPLY A BY 3 GIVING B COMPUTE RES = NUM1 * NUM2 DIVISION: DIVIDE divisor INTO dividendo A = 20 DIVIDE 5 INTO A DIVIDE 5 INTO A GIVING B DIVIDE 5 INTO 31 REMAINDER C COMPUTE RES = NUM2 / NUM1 /* A vale 4 */ /* B vale 4 */ /* C vale 1 (resto de la divisin) */ /* RES vale la divisin entera /* A vale 9 */ /* B vale 9 */
ELSE sentencias END-IF Sentencia DECIDE FOR FIRST/EVERY ,indica si se procesa solamente la primera condicin que se cumpla o cada una de las condiciones que se cumplan.Se pone solo una no ambas. DECIDE FOR { FIRST } CONDITION { EVERY } {WHEN condicin lgica sentencias} {WHEN ANY condicin lgica sentencias} {WHEN ALL condicin lgica sentencias} WHEN NONE {IGNORE} {sentencias} END-DECIDE Sentencia DECIDE ON FIRST/EVERY ,indica si se procesa solamente la primera condicin que se cumpla o cada una de las condiciones que se cumplan.Se pone solo una pero no ambas. DECIDE ON {FIRST} VALUE OF operando1 {EVERY} {VALUE operando2} {ANY VALUE sentencias} {ALL VALUE sentencias} NONE VALUE {IGNORE} Sentencias END-DECIDE
WRITE WORK [FILE] nmero de work-file [VARIABLE] operando 1 NEWPAGE Avanza una nueva pgina NEWPAGE [(rep)] [{EVEN [IF][TOP][OF][PAGE]}] [{[{IF}] [LESS][THAN] operando 1[LINES][LEFT]}] [{[{WHEN}] [LESS][THAN] operando 1[LINES][LEFT]}] [[WITH] TITLE] PROCESS Permite leer y escribir ficheros , gestionar VTOC y catalogos,colas JES etc. PROCESS nombre de vista USING operando 1 = operando 2 GIVING operando 3
[CIPHER = operando 2] [RECORD] {operando 3, *ISN} operando 4 . Lee un registro con un ISN (Nmero de Secuencia Interna) GET SAME GET SAME [(r)] operando 1 Se utiliza para volver a leer el registro que esta siendo procesado actualmente. GET TRANSACTION DATA GET TRANSACTION DATA operando 1 . Se utiliza para leer los datos salvados con una sentencia END OF TRANSACTION anterior. HISTOGRAM HISTOGRAM [{operando 1}] [VALUE] [IN] [FILE] Nombre de view [PASSWORD = operando 2] [VALUE][FOR][FIELD]operando 3 [STARTING : ENDING - clasula] [WHERE-clasula] Sentencias END-HISTOGRAM Leer los valores de campos de la base de datos definidos como descriptor,subdescriptor o superdescriptor. END TRANSACTION END TRANSACTION [operando 1 ] Indica el final de una transaccin lgica. OBTAIN OBTAIN operando 1 . Se utiliza para hacer disponible un rango de ocurrencias de una matriz de la base de datos en almacenamiento continuo. READ {READ} {BROWSE} [(operando 1)] [RECORDS][IN][FILE] Nombre de view [PASSWORD = operando 2] [CIPHER = operando 3]
[Especificacin secuencia rango] [WHERE - clasula] Sentencias . END-READ Se utiliza para leer registros de la base de datos. STORE STORE [RECORD][IN][FILE] Nombre de view [PASSWORD = operando 1] [CIPHER = operando 1] [[{USING}] NUMBER operando 3][(r)] [[{GIVING}] NUMBER operando 3][(r)] {[USING] SAME [RECORD][AS][STATEMENT][(r)]} {[{SET,WITH}]{operando 4 = operando 5}} Se utiliza para aadir un registro a la base de datos. UPDATE UPDATE [RECORD] [IN] [STATEMENT] [(r)] Se utiliza para actualizar uno o mas campos de un registro de la base de datos.
13.- SUBRUTINAS:
Para crear una subrutina dentro de nuestro programa escribimos el cdigo de nuestra subrutina procedemos as: DEFINE SUBROUTINE NOMBRE_DE_LA_SUBRUTINA /* Cdigo de nuestra subrutina */ END-SUBROUTINE Para crear una subrutina externa: Creamos primero un objeto Natural de tipo subrutina,dentro de este objeto definimos en DATA PARAMETER las variables que usara la subrutina, y despus el cdigo de la subrutina. DEFINE DATA PARAMETER /* Variables */ END-DEFINE DEFINE SUBROUTINE NOMBRE_DE_LA_SUBRUTINA /*
CALLNAT RUTINA #PARAMETRO1 #PARAMETRO2 /* CALL FILE Se usa para llamar a programas que ha escrito el Usuario y acceden a un fichero de datos que no es de ADABAS */ CALL FILE RUTINA #PARAMETRO1 #PARAMETRO2 Sentencias END-FILE
RESET Quita la seleccin de lneas. SCAN Busca texto. SA Salva el programa. SA Nombre Salva el programa con el nombre Nombre. STRUCT Sangra el cdigo fuente.
COMANDOS DE COMPILACION Y EJECUCION: