Provided by: manpages-pt-dev_20040726-4_all bug

NOME

       recno - método de acesso a banco de dados por número de registro

SINOPSE

       #include <sys/types.h>
       #include <db.h>

DESCRIÇÃO

       A  rotina  dbopen  é  a  interface  de  biblioteca para arquivos de banco de dados. Um dos
       formatos de arquivos suportados são os arquivos de número de registros. A descrição  geral
       dos  métodos  de acesso a banco de dados está em dbopen(3), esta página de manual descreve
       somente a informação específica de recno.

       A estrutura de dados de número de registro são registros variáveis ou de comprimento fixo,
       armazenados  em  formato  de  arquivo  liso,  acessado  por  número de registro lógico.  A
       existência do número de registro cinco implica na existência dos registros de um a quatro,
       e  o  apagamento  do  registro um faz com que o registro número cinco seja renumerado para
       quatro, assim como o cursor, que se estiver posicionado depois do registro  número  um,  é
       deslocado em um registro para baixo.

       A estrutura de dados específico do método de acesso recno fornecida para dbopen é definida
       no arquivo de inclusão <db.h>, como a seguir:

       typedef struct {
              u_long flags;
              u_int cachesize;
              u_int psize;
              int lorder;
              size_t reclen;
              u_char bval;
              char *bfname;
       } RECNOINFO;

       Os elementos desta estrutura são definidos como segue:

       flags  O valor da flag é especificado por ouestáespecificando qualquer  um  dos  seguintes
              valores:

              R_FIXEDLEN
                     Os  registros são de comprimento fixo, não delimitados por byte.  O elemento
                     de estrutura reclen especifica o comprimento do registro, e  o  elemento  de
                     estrutura  bval  é  usado  como  o  caractere  de  preenchimento.  Quaisquer
                     registros, inseridos no banco de dados, que têm menos do que reclen bytes de
                     comprimento são completados automaticamente.

              R_NOKEY
                     Na interface especificada por dbopen, a recuperação de registros sequenciais
                     preenchem tanto a chave do solicitante quanto as estruturas de dados.  Se  a
                     flag  R_NOKEY  é  especificada, as rotinas do cursor não são requeridas para
                     preencher a estrutura da chave. Isto permite  que  as  aplicações  recuperem
                     registros no fim dos arquivos sem ler todos os registros intermediários.

              R_SNAPSHOT
                     Esta  flag  requer  que uma imagem instantânea do arquivo seja tomada quando
                     dbopen é chamado, em vez de permitir que qualquer  registro  não  modificado
                     seja lido do arquivo original.

       cachesize
              Um tamanho máximo sugerido, em bytes, do cache de memória.  Este valor é apenas uma
              recomendação, e o método de acesso alocará mais  memória  em  vez  de  falhar.   Se
              cachesize é 0 (nenhum tamanho é especificado), é usado um cache padrão.

       psize  O  método  de  acesso recno armazena as cópias em memória dos seus registros em uma
              btree.  Este valor é o tamanho (em bytes) das páginas usadas para  os  nós  daquela
              árvore.   Se  psize  é  0  (o tamanho da página não é especificado), é escolhido um
              tamanho de página baseado no tamanho básico do bloco de E/S do sistema de arquivos.
              Veja btree(3) para mais informações.

       lorder A  ordem  de  bytes  para  inteiros nos metadados armazenados do banco de dados.  O
              número deve representar a ordem como um inteiro; por exemplo, a ordem "big  endian"
              deveria  ser  o  número 4,321.  Se lorder é 0 (a ordem não é especificada), a ordem
              corrente do host é usada.

       reclen O comprimento de um registro de comprimento fixo.

       bval   O byte delimitante a ser usado para marcar o fim de um registro para  registros  de
              comprimento  variável, e o caractere de preenchimento para registros de comprimento
              fixo.  Se nenhum valor é especificado, novas linhas (``\n'') são usadas para marcar
              o  fim  de  registros  de comprimento variável, e registros de comprimento fixo são
              completados com espaços.

       bfname O método de acesso recno armazena as cópias em memória dos seus  registros  em  uma
              btree.   Se  bfname  não é NULL, ele especifica o nome do arquivo da btree, como se
              fosse especificado como um nome de arquivo para um dbopen de um arquivo da btree.

       A parte dos dados de um par chave/dados usado para o método de acesso recno é o mesmo  que
       em  outros  métodos  de  acesso.  A  chave é diferente.  O campo data da chave deve ser um
       ponteiro para um local da memória do tipo recno_t, como definido no  arquivo  de  inclusão
       <db.h>.  Este  tipo  é  normalmente  o  maior  tipo  integral  sem sinal disponível para a
       inplementação.  O campo size da chave deve ser o tamanho daquele tipo.

       Como pode não haver metadados associados com os  arquivos  básicos  do  método  de  acesso
       recno,  qualquer  mudança  feita  nos  valores  padrão  (por exemplo, comprimento fixo dos
       registros ou valor do separador de bytes) precisa ser especificada explicitamente cada vez
       que o arquivo é aberto.

       Na  interface  especificada  por  dbopen, usar a interface put para criar um novo registro
       fará com que sejam criados vários registros vazios se o número do registro  é  maior,  por
       mais de um, que o maior registro correntemente no banco de dados.

ERROS

       As rotinas do método de acesso recno podem falhar e setar errno para qualquer um dos erros
       especificados para a rotina de biblioteca dbopen(3) , ou os seguintes:

       [EINVAL]
              Uma tentativa foi feita para acrescentar  um  registro  a  um  banco  de  dados  de
              comprimento fixo que era muito grande para caber.

VEJA TAMBÉM

       btree(3) dbopen(3), hash(3), mpool(3),

       Processamento  de  Documentos  em  um  Sistema  de  Banco  de  Dados  Relacional,  Michael
       Stonebraker, Heidi Stettner, Joseph Kalash, Antonin Guttman, Nadene Lynn,  Memorandum  No.
       UCB/ERL M82/32, May 1982.

ERROS

       Somente  as  ordens de byte 'big endian' (primeiro o mais significativo) e 'little endian'
       (primeiro o byte menos significativo) são suportadas.

TRADUZIDO POR LDP-BR EM 03/08/2000

       RUBENS  DE  JESUS  NOGUEIRA  <darkseid99@usa.net>  (tradução)  XXXXXX  XX  XXXXX  XXXXXXXX
       <xxxxxxxxxx@xxx.xxx> (revisão)