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

OPÇÃO VIRTUAL

Propósito

A cláusula VIRTUAL é utilizada, opcionalmente, nos comandos SEEK, FIND, LOCATE START e START. Seu objetivo é montar em memória o valor a ser pesquisado, permitindo que sejam efetuadas leituras a partir de chaves redefinidas por itens de vários tipos de dados, além de permitir a pesquisa de chaves com valor nulo.

Recebe como argumento expressões para pesquisa, que devem ser passadas, separadas por vírgula e na ordem da redefinição da chave.

Caso não haja correspondência entre os tipos passados e os definidos na chave, o erro será informado durante a transação.

Sintaxe

FIND VIRTUAL (<exp1>[,<exp2>,...<expn>])

SEEK <chave> {=|$=} VIRTUAL(<exp1>[,<exp2>,...<expn>])

START VIRTUAL (<exp1>[,<exp2>,...<expn>])

LOCATE START VIRTUAL (<exp1>[,<exp2>,...<expn>])

Exemplos

O exemplo a seguir mostra-nos a utilização desta opção.

Esquema do Banco de Dados:

$CONTROLE REDEFU

BANCO exemp1 1 

NOME: ARQ1 E

iten1         u1

iten2         p2

chave1(1)    u2 pos iten1

NOME: ARQ2 R

iten3         u1

iten4         p2

chave2(ARQ1)     u2 pos iten3

iten5         v5

chave3(0)     v6 virtual (iten4, iten5)

Inclusão pelo geral:

a)     Item 1 = A

    Item 2 = 11

b)     Item 1 = 3

    Item 2 = 2

c)     Item 3 = A

    Item 4 = 11

    Item 5 = 11

Programa:

PROG

DATABASE exemp1 1 a 2

USE ARQ1

FIND VIRTUAL ("a",11)

...

LOCATE START VIRTUAL ("b",2)

...

USE ARQ2

SEEK chave3 = VIRTUAL (11,"")

A função VIRTUAL, também pode ser utilizada para compor uma varável, com tipos diferentes de itens de dados que compõem um item chave redefinido.

Sintaxe

<VAR> = VIRTUAL(<tip.tam>)<exp>,...,<tipo.tam><exp>

onde:

<tip.tam>    tipo e tamanho do item a pesquisar.

<exp>        valor do item a pesquisar

Exemplos

Esquema de Banco de Dados:    

nome: tabelaA        E

chave(0)    u22

codigo(0)    u5    pos chave

data        D2    pos chave+5

hora        u5    pos chave+7

dest(0)        u10    pos chave+12

Programa:

prog

DATABASE  ./bancoa 1 a 2

select a

use Tabela1

v=virtual ((u5) "55555", (d02) "01/01/98")

locate

start v

continue

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