Anterior Sumário Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!

Arquivos externos

Um arquivo externo é um arquivo que não pertence a um Banco de Dados OpenBASE. Pode ser criado pelo OpenBASE ou outro programa qualquer.

A linguagem OPUS permite leituras e atualizações de registros em arquivos externos ao OpenBASE. Aos arquivos externos não criados pela OPUS, esta só permite acesso seqüencial para leitura desses arquivos.

Arquivos externos são definidos pela OPUS através de micro-esquemas, que correspondem à estrutura da área de dados do arquivo. A área reservada para cada item do arquivo é identificada pela OPUS por um nome em relação ao deslocamento e tamanho deste item no registro.

Para realizar-se operações sobre um arquivo externo, deve-se especificar o nome do micro-esquema após o comando USE ou definir a estrutura do arquivo dentro do próprio programa fonte OPUS. Desta forma, o micro-esquema é compilado pela OPUS e seus itens são declarados como variáveis locais.

Micro-esquemas

Um micro-esquema pode ser definido em um arquivo texto (USE <arquivo>) ou pode ser definido dentro do programa fonte (USE *).

Numa aplicação, caso o arquivo externo referenciado em um micro-esquema não exista, ele será criado automaticamente, no momento da execução do programa.

Definição de um micro-esquemas

A primeira linha descreve o arquivo externo e deve conter as seguintes informações:

<nome> <tipo> LEN (<tamanho>) [<modo>] [EXCLUSIVE] [MAXCAB] [BITS64]

Onde:

<nome> pode ser:

<tipo>     representa o tipo do arquivo externo.

<tamanho> representa o tamanho total do registro (tamanho do maior registro).

<modo> representa o modo para utilização do arquivo.

Pode ser:

Por omissão é assumido INPUT / OUTPUT.

EXCLUSIVE

determina exclusividade de utilização do arquivo. Só para arquivos indexados.

MAXCAB

Sem a opção MAXCAB (default) o arquivo pode ter no maximo 16.777.215 registros ocupando no maximo 4.294.967.295 bytes (4 GB)
Com a opção MAXCAB o arquivo pode ter no máximo 4.294.967.295 registros ocupando no maximo 4.294.967.295 bytes (4 GB)

BITS64

Com a opção BITS64 o arquivo pode ter no máximo 9.223.372.036.854.775.807 bytes
Sem a opção BITS64 (default) o arquivo pode ter no máximo 4 GB.

Notas:

Campos do arquivo externo

As linhas subseqüentes não vazias descrevem os campos do registro e devem conter as seguintes informações, como mostra a Sintaxe

<item> <tipo_tamanho> [POS <número>] [KEY]

Onde:

<item>

Representa o nome do campo do arquivo. Deve se iniciar por letra, ter no máximo 12 caracteres e não ter duplicata.

<tipo_tamanho>

Representa o tipo e o tamanho do item.

POS <número>

Informa a posição inicial do item no registro, permitindo redefinição de itens. Todo registro começa na posição 1. Um campo pode redefinir outro, isto é, possuir posições comuns no registro. No programa que utilizar os campos, estes serão vistos como variáveis distintas. Por este motivo, na inclusão de registros, os campos que redefinem outros devem ser ignorados.

KEY

Determina que o campo será a chave única de arquivo indexado.

Exemplos de micro-esquema

Utiliza-se um editor de textos, e segue-se a sintaxe descrita anteriormente.

Exemplo 1

Neste exemplo criaremos um arquivo seqüencial de nome ag_tel de tamanho 89. Note que o tamanho é o somatório do tamanho de todos os campos. Nome do micro-esquema agenda_tel.d.

ag_tel     S LEN(89)

nome     U20

tele     U14

ende     U50

cep    N05

Exemplo 2

Neste exemplo criaremos um arquivo indexado de nome /usr/arq/empresas onde a chave será o campo com o CGC da empresa. Nome do micro-esquema: empresas.d.

/usr/arq/empresas     I LEN(104)

emp_cgc     N14     KEY

emp_nom     U50

emp_rua     U25

emp_num     N08

emp_cep     N05

emp_uf    U02

emp_end     U40     POS 64

Exemplo 3

Neste exemplo criaremos um arquivo temporário com a estrutura do arquivo descrito no primeiro exemplo. Nome do micro-esquema: tmp_agtel.d.

# S LEN(89)

nome     U20

tele     U14

ende     U50

cep     N05

Exemplo 4

Podemos definir vários arquivos externos em um único micro-esquema (biblioteca de micro-esquemas). Utilizaremos os exemplos anteriores para demonstrar este recurso. Neste caso utiliza-se o editor de textos para criar a biblioteca e para identificar cada módulo (micro-esquema). Utiliza-se o caractere % (percentual), que deve ser o primeiro caractere da linha, seguido do nome do micro-esquema.

Exemplo

Nome da biblioteca bib_est.d.

%ag_tel

ag_tel     S LEN(89)

nome     U20

tele     U14

ende     U50

cep     N05

%empresas

/usr/arq/empresas     I LEN(104)

emp_cgc     N14     KEY

emp_nom     U50

emp_rua     U25

emp_num     N08

emp_cep     N05

emp_uf         U02

emp_end     U40     POS 64

%tmp_agtel

# S LEN(89)

nome     U20

tele     U14

ende     U50

cep     N05

Anterior Sumário Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!