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