Provided by: manpages-pt-dev_20040726-5_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)

4.4 Berkeley Distribution                     18 de agosto de 1994                                      RECNO(3)