.\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)recno.3 8.5 (Berkeley) 8/18/94 .\" .TH RECNO 3 "18 de agosto de 1994" .UC 7 .SH NOME recno \- método de acesso a banco de dados por número de registro .SH SINOPSE .nf .ft B #include #include .ft R .fi .SH DESCRIÇÃO A rotina .IR 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 .IR dbopen (3), esta página de manual descreve somente a informação específica de recno. .PP 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. .PP A estrutura de dados específico do método de acesso recno fornecida para .I dbopen é definida no arquivo de inclusão , como a seguir: .PP typedef struct { .RS u_long flags; .br u_int cachesize; .br u_int psize; .br int lorder; .br size_t reclen; .br u_char bval; .br char *bfname; .RE } RECNOINFO; .PP Os elementos desta estrutura são definidos como segue: .TP flags O valor da flag é especificado por .IR ou está especificando qualquer um dos seguintes valores: .RS .TP R_FIXEDLEN Os registros são de comprimento fixo, não delimitados por byte. O elemento de estrutura .I reclen especifica o comprimento do registro, e o elemento de estrutura .I bval é usado como o caractere de preenchimento. Quaisquer registros, inseridos no banco de dados, que têm menos do que .I reclen bytes de comprimento são completados automaticamente. .TP R_NOKEY Na interface especificada por .IR 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 .I 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. .TP R_SNAPSHOT Esta flag requer que uma imagem instantânea do arquivo seja tomada quando .I dbopen é chamado, em vez de permitir que qualquer registro não modificado seja lido do arquivo original. .RE .TP cachesize Um tamanho máximo sugerido, em bytes, do cache de memória. Este valor é .B apenas uma recomendação, e o método de acesso alocará mais memória em vez de falhar. Se .I cachesize é 0 (nenhum tamanho é especificado), é usado um cache padrão. .TP 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 .I 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 .IR btree (3) para mais informações. .TP 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 .I lorder é 0 (a ordem não é especificada), a ordem corrente do host é usada. .TP reclen O comprimento de um registro de comprimento fixo. .TP 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 (``\en'') são usadas para marcar o fim de registros de comprimento variável, e registros de comprimento fixo são completados com espaços. .TP 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. .PP 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 .I data da chave deve ser um ponteiro para um local da memória do tipo .IR recno_t , como definido no arquivo de inclusão . Este tipo é normalmente o maior tipo integral sem sinal disponível para a inplementação. O campo .I size da chave deve ser o tamanho daquele tipo. .PP 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. .PP Na interface especificada por .IR dbopen , usar a interface .I 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. .SH ERROS As rotinas do método de acesso .I recno podem falhar e setar .I errno para qualquer um dos erros especificados para a rotina de biblioteca .IR dbopen (3) , ou os seguintes: .TP [EINVAL] Uma tentativa foi feita para acrescentar um registro a um banco de dados de comprimento fixo que era muito grande para caber. .SH "VEJA TAMBÉM" .IR btree (3) .IR dbopen (3), .IR hash (3), .IR mpool (3), .sp .IR "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. .SH ERROS Somente as ordens de byte 'big endian' (primeiro o mais significativo) e 'little endian' (primeiro o byte menos significativo) são suportadas. .SH TRADUZIDO POR LDP-BR EM 03/08/2000 \&\fR\&\f(CWRUBENS DE JESUS NOGUEIRA (tradução)\fR \&\fR\&\f(CWXXXXXX XX XXXXX XXXXXXXX (revisão)\fR