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

VIRTUAL()

Propósito

A função 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 execuçã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:

BANCO exemp1 1 

NOME: ARQ1 E

iten1               u1

iten2               n2

chave1(1)           u3 pos iten1

NOME: ARQ2 R

iten3               u1

iten4               n2

chave2(ARQ1)        u3 pos iten3

iten5               u5 nulo

chave3(0)           u7 nulo virtual (iten4, iten5)

Inclusão pelo geral:

a)     iten1 = A  iten2 = 11

b)     iten1 = 3  iten2 = 2

c)     iten3 = A  iten4 = 11 iten5 = 11

Programa:

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 variá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          n2    pos chave+5

hora          u5    pos chave+7

dest(0)       u10   pos chave+12

Programa:

use tabelaA

v=virtual ((u5) "555", (n2) 9)

locate start v

? chave

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