EXIRION/OS -BLAST DataObjects-

Page 1

DataObjects OVERVIEW

By Rolando Fernรกndez Benavidez


NO WARRANTIES OF ANY NATURE ARE EXTENDED BY THIS DOCUMENT Any product or related information described herein is only furnished pursuant and subject to the terms and conditions of a duly executed agreement to purchase or lease equipment or to license software. The only warranties made by Nova32 Development Software, if any, with respect to the products described in this document are set forth in such agreement. Nova32 Development Software cannot accept any financial or other responsibility that may be the result of your use of the information in this document or software material, including direct, special, or consequential damages. You should be very careful to ensure that the use of this information and/or software material complies with the laws, rules, and regulations of the jurisdictions with respect to which it is used. The information contained herein is subject to change without notice. Revisions may be issued to advise of such changes and/or additions. Notice to End Users: This is commercial computer software or hardware documentation developed at private expense. Use, reproduction, or disclosure by the Government is subject to the terms of Nova32 Development Software standard commercial license for the products, and where applicable, the restricted/limited rights provisions of the contract data rights clauses.


DataObjects OVERVIEW

BLAST XC 1.0


DataObjects  Para manejar información proveniente de la

Base de Datos, y poder compartirla entre procesos y funciones, asi como exportarla a otros lenguajes como Berly, es necesario utilizar un conjunto de objetos especializados en dicha manipulaciĂłn. Cost Clients

Providers


DataObjects in BLAST XC

 RECORD  TAPE  FILLER


DataObjects in BLAST XC 

RECORD

DataObject para almacenar Rows ( Filas ) , muy utilizado para replicar Filas de Tablas existentes en la Base de Datos. Tamaño de Objeto: 1 Kilobyte. 

TAPE

DataObject para almacenar Tables ( Tablas ) , muy utilizado para replicar Tablas pequeñas existentes en la Base de Datos. Tamaño de Objeto: 33 Kilobytes. 

FILLER

DataObject para almacenar Tables ( Tablas ) , muy utilizado para replicar Tablas existentes en la Base de Datos. Tamaño de Objeto: 64 Kilobytes.


DataObjects Size in BLAST XC  Los DataObjects RECORD, TAPE y FILLER de BLAST disponen de una capacidad maxima de almacenamiento en Kilobytes, debido principalmente a que la plataforma BLAST esta diseùada para ser altamente portable y eficiente, para ser explotada por aplicaciones distribuidas por la Web o en plataformas Host, consumiendo el minimo posible de recursos Hardware que en conjunto integran una poderosa y rapida interfaz de transferencia de datos.


Example 1: Creating Data Table in BLAST using TAPE object. 

1. Crear las Variables en la WORKING-STORAGE-SECTION de tu programa BLAST

GLOBAL

TAPE

CLIENTES

.

GLOBAL

RECORD

FILA

.

GLOBAL

STRING

CLAVE

PICTURE

“ “ .

GLOBAL

STRING

NOMBRE

PICTURE

“ “ .

GLOBAL

STRING

EDAD

PICTURE

“ “ .

Esto nos permitira crear una tabla tipo TAPE, similar a la siguiente figura:

CLAVE

NOMBRE

EDAD

1000

ANA HERNANDEZ

22

2000

LUIS PEREZ

18

3000

ELSA PEREZ

35


2. Dentro de un PROCESS o una FUNCTION, utilizar las funciones de bajo nivel del Lenguaje BLAST: LET ( CLIENTES )

.

FIELDSIZE

MOVE

130

.

RECORDSIZE

MOVE

390

.

REWIND ( 0 ) .

POKE

( FILA )

.

En este momento hemos definido la estructura de nuestra TABLA, Campos de tamaño maximo de 130 bytes, Registros (Filas) de tamaño maximo de 390 bytes., es decir hemos definido una tabla de 3 campos cada uno de 130 bytes, por lo tanto el tamaño de cada Fila es de 390 bytes, con capacidad para almacenar 86 Filas. 86 Filas = Capacidad de un TAPE en Bytes. / Tamaño de las Filas en Bytes. En caso de que el campo sea menor, BLAST ajusta automaticamente el tamaño para ocupar el menor espacio en memoria RAM, lo mismo aplica al tamaño de la Fila o Registro. El tamaño Maximo para un campo es de 256 bytes, y el tamaño maximo de una Fila o Registro es de 1024 Bytes.

130 bytes.

130 bytes. 390 bytes en RAM. 390 bytes en RAM. 390 bytes en RAM.

130 bytes.


3. Ahora vamos a agregar los encabezados de campos y registro (Fila) para posteriormente almacenar los datos en el objeto CLIENTES. COPY ( CLAVE , “CLAVE“ ) . COPY ( NOMBRE , “NOMBRE“ ) . COPY ( EDAD , “EDAD“ ) . WRITE WRITE WRITE PUT

( ( ( (

FILA , CLAVE FILA , NOMBRE FILA , EDAD 1 , 1 , FILA ) .

, 1 ) . , 2 ) . , 3 ) .

La instrucción COPY permite agregar los datos a las variables previamente definidas en la WORKING-STORAGE-SECTION, la instrucción WRITE permite agregar un campo a un Objeto tipo RECORD (DataRow), la función PUT almacena en la Tabla en uso el contenido completo del RECORD, es decir almacenamos la Fila en la Tabla creada con el comando LET. Sintaxis: WRITE ( RECORD ,

STRING , INTEGER ) .

RECORD = Fila STRING = Campo INTEGER = El número de campo secuencial a agregar en la Fila. PUT ( INTEGER-REC , INTEGER -RECS , RECORD ) . INTEGER –REC = Registro para Almacenar, número de Fila consecutiva INTEGER-RECS = Cantidad de Filas existentes actualmente en la Tabla. RECORD = Fila a guardar en la Tabla en uso.

CLAVE

NOMBRE

EDAD


4. De la misma forma procedemos a guadar ahora los datos de cada Fila en el objeto CLIENTES. COPY ( CLAVE , “1000“ ) . COPY ( NOMBRE , “ANA HERNANDEZ“ ) . COPY ( EDAD , “22“ ) . WRITE WRITE WRITE PUT

( ( ( (

FILA , CLAVE FILA , NOMBRE FILA , EDAD 2 , 2 , FILA ) .

, 1 ) . , 2 ) . , 3 ) .

COPY ( CLAVE , “2000“ ) . COPY ( NOMBRE , “LUIS PEREZ“ ) . COPY ( EDAD , “18“ ) . WRITE WRITE WRITE PUT

( ( ( (

FILA , CLAVE FILA , NOMBRE FILA , EDAD 3 , 3 , FILA ) .

, 1 ) . , 2 ) . , 3 ) .

COPY ( CLAVE , “CLAVE“ ) . COPY ( NOMBRE , “NOMBRE“ ) . COPY ( EDAD , “EDAD“ ) . WRITE WRITE WRITE PUT

( ( ( (

FILA , CLAVE FILA , NOMBRE FILA , EDAD 4 , 4 , FILA ) .

, 1 ) . , 2 ) . , 3 ) .

Listo el objeto TAPE CLIENTES ahora contiene encabezados de columna y 3 filas de datos, podemos manipularlos dentro del mismo BLAST o exportarlos a otros Lenguajes de programación, incluso entre diferentes plataformas de Hardware y Sistemas Operativos.


Example 2: Read Data Table in BLAST using TAPE object. 

1. Crear las Variables en la WORKING-STORAGE-SECTION de tu programa BLAST, en caso de que no esten creadas aun. GLOBAL

TAPE

CLIENTES

.

GLOBAL

RECORD

FILA

.

GLOBAL

STRING

CLAVE

PICTURE

“ “ .

GLOBAL

STRING

NOMBRE

PICTURE

“ “ .

GLOBAL

STRING

EDAD

PICTURE

“ “ .

GLOBAL

INTEGER

REGISTROS

PICTURE

0

.

GLOBAL

INTEGER

APUNTADOR

PICTURE

0

.

GLOBAL

INTEGER

TAMANOCAM

PICTURE

0

.

Esto nos permitira Leer una tabla tipo TAPE, similar a la siguiente figura:

CLAVE

NOMBRE

EDAD

1000

ANA HERNANDEZ

22

2000

LUIS PEREZ

18

3000

ELSA PEREZ

35


2. Abrir la Tabla CLIENTES del objeto TAPE, y preparar un objeto RECORD, que nos permita ir leyendo las diferentes filas que integran la Tabla.

USE

( CLIENTES ) .

POKE ( FILA ) .

3. Usar la instrucción GET para obtener la primera Fila, y el comando READ para ir leyendo los diferentes campos que integran la Fila:

COPY ( FILA , GET (1) ) . COPY ( CLAVE , READ ( FILA , 1) ) . COPY ( NOMBRE , READ ( FILA , 2) ) . COPY ( EDAD , READ ( FILA , 3) ) .

Sintaxis: GET ( INTEGER ) . INTEGER = Número de Fila a extraer de la Tabla

READ ( RECORD , INTEGER ) RECORD = Objeto tipo RECORD que representa una Fila de datos en una Tabla. INTEGER = Número de Campo Consecutivo a Leer de una Fila extraida.


4. Continuar el mismo procedimiento hasta haber terminado la lectura de todos las Filas y Campos, generalmente estas lecturas pueden realizarse utilizando ciclos como DO-WHILE O REPEAT en BLAST.

COPY ( FILA , GET (2) ) . COPY ( CLAVE , READ ( FILA , 1) ) . COPY ( NOMBRE , READ ( FILA , 2) ) . COPY ( EDAD , READ ( FILA , 3) ) .

COPY ( FILA , GET (3) ) . COPY ( CLAVE , READ ( FILA , 1) ) . COPY ( NOMBRE , READ ( FILA , 2) ) . COPY ( EDAD , READ ( FILA , 3) ) .

5. En este ejemplo cada vez que se hace la lectura de los Campos se guardan en las mismas variables,eliminando el valor anterior, pero pueden almacenarse en cualquier variable que este declarada previamente en la WORKINGSTORAGE-SECTION.

Para poder hacer uso de Ciclos DO-WHILE o REPEAT, es necesario conocer el número de registros existente en la Tabla, o bien para continuar agregando mas registros o Filas, en BLAST se dispone de las siguientes funciones de bajo nivel para realizar este tipo de operaciones: 

OCCURS

REDEFINE

FIELDSET


OCCURS Devuelve el número de ocurrencias de registros en un Objeto tipo TAPE, FILLER.

Ejemplo:

REGISTROS MOVE OCCURS ( CLIENTES ) .

REDEFINE Devuelve el tamaño en Bytes, que ocupa cada objeto RECORD (Fila) en la Tabla en uso.

Ejemplo:

REGISTROS MOVE REDEFINE ( CLIENTES) .

FIELDSET Cantidad de Bytes que ocupa cada campo dentro del objeto RECORD, de la Tabla en uso.

Ejemplo:

REGISTROS MOVE FIELDSET ( CLIENTES) .


DataObject FILLER El DataObject FILLER se usa practicamente de la misma forma que los ejemplos anteriores, la unica diferencia es que un objeto FILLER posee una capacidad de almacenamiento mayor, 64 Kilobytes,en comparación a los 33 Kilobytes del objeto TAPE. QUESTIONS :

¿ Como manipular Tablas de Base de Datos completas, o de gran tamaño ? Los pilares fundamentales de la filosofia de BLAST, proponen realizar paginaciones de Datos, para no saturar los anchos de bandas en redes tipo LAN, MAN o WAN, desde hace muchos años en los ambientes Mainframe se ha estandarizado la medida de 64 kilobytes como bloque de datos optimo de transferencias entre complejas redes de telecomunicación, de plataforma a plataforma.

BLAST dispone de soporte ASCII UTF-8 y caracteres EBCD para intercambios de datos, entre diferentes sistemas de computadores. ¿ Si necesito manejar de todas formas un bloque de datos mayor, que objeto dispongo en BLAST ? No es recomendable, pero si dada la necesidad, usted dispone de los objetos BINARY 65 Kilobytes y el objeto BLOB que es el mas grande aproximadamente 2 MB.


BLAST 1.0 TUTORIAL BLAST BLAST version 1.0 release 2.3 Operating System Compatible for Running: 

X86, EXIRION/OS

X86, x64 EXIRION/XL65

SPARK , Unix

The BLAST Tutorial for student and developers writing in Xalapa, Veracruz, Saturday 05-04-2012. Creating: RFB 05-05-2012 Update: AUJT 09-05-2012


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.