Provided by: manpages-es-dev_4.13-4_all bug

NOMBRE

       recno - método de acceso a bases de datos con registros numerados

SINOPSIS

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

DESCRIPCIÓN

       Note  well:  This page documents interfaces provided in glibc up until version 2.1.  Since
       version 2.2, glibc no longer provides these interfaces.  Probably, you are looking for the
       APIs provided by the libdb library instead.

       La  rutina dbopen(3) es la interfaz de biblioteca para los ficheros de bases de datos. Uno
       de los formatos de fichero soportados es el de los ficheros con registros  numerados  (que
       llamaremos  regnum).  La  descripción general de los métodos de acceso a bases de datos se
       encuentra en la página de manual  de  dbopen(3);  esta  página  de  manual  sólo  describe
       información específica de regnum.

       La  estructura  de  datos  de registros numerados está formada por registros de longitud o
       fija o variable almacenados en un formato de fichero plano, accedido por el número  lógico
       de  registro.   La  existencia  del  registro  número  cinco  implica la existencia de los
       registros del 1 al 5, y la eliminación del registro número 1 hace que el registro número 5
       sea  renumerado  al  registro  número 4, de la misma manera que el cursor se desplazará un
       registro hacia abajo si se encuentra posicionado después del registro número 1.

       La estructura de datos específica del método de acceso regnum proporcionada a dbopen(3) se
       define en el fichero cabecera <db.h> como sigue:

           typedef struct {
               unsigned long flags;
               unsigned int  cachesize;
               unsigned int  psize;
               int           lorder;
               size_t        reclen;
               unsigned char bval;
               char         *bfname;
           } RECNOINFO;

       Los elementos de esta estructura se definen de la siguiente manera:

       flags  El  valor  de  las  opciones  se  especifica  mediante  una  operación  O-lógica de
              cualquiera de los siguientes valores:

              R_FIXEDLEN
                     Los registros son de longitud fija, no delimitados por bytes.   El  elemento
                     reclen  de  la  estructura especifica la longitud del registro y el elemento
                     bval de la estructura se usa como carácter de relleno.  Todos los registros,
                     insertados  en  la  base  de  datos, cuya longitud es más pequeña que reclen
                     bytes, se completan automáticamente con el carácter bval.

              R_NOKEY
                     En la interfaz especificada por dbopen(3),  la  recuperación  secuencial  de
                     registros  rellena  tanto  la  clave  del  invocador como las estructuras de
                     datos.  Si se especifica la opción R_NOKEY, no se  necesitarán  las  rutinas
                     con  cursor  para  rellenar  la  estructura de la clave.  Esto permite a las
                     aplicaciones recuperar registros al final de los ficheros sin leer todos los
                     registros que intervienen.

              R_SNAPSHOT
                     Esta  opción exige que se tome una instantanea del fichero cuando se llame a
                     dbopen(3), en lugar de permitir que cualquier  registro  sin  modificar  sea
                     leído del fichero original.

       cachesize
              Tamaño  máximo  sugerido,  en  bytes,  de  la  memoria  caché.   Este valor sólo es
              consultivo y el método de acceso  reservará  más  memoria  antes  que  fallar.   Si
              cachesize es 0 (no se especifica un tamaño) se usa una caché por defecto.

       psize  El  método  de  acceso  regnum  almacena  las  copias  residentes en memoria de sus
              registros en un árbolB (btree).  Este valor es el tamaño (en bytes) de las  páginas
              usadas  para nodos del árbol.  Si psize es 0 (no se especifica un tamaño de página)
              se selecciona un tamaño de página basado en el tamaño de bloque de E/S del  sistema
              de ficheros subyacente.  Véase btree(3)  para más información.

       lorder El  orden  de los bytes para los enteros de los metadatos almacenados en la base de
              datos. El número debería representar el orden como un entero; por ejemplo, el orden
              `el  byte  de  mayor  peso  el último' (orden ascendente) sería el número 4321.  Si
              lorder es 0 (no se especifica un orden) se utiliza el orden del anfitrión actual.

       reclen El tamaño de un registro de tamaño fijo.

       bval   El byte delimitador a usar para marcar el final de un registro para  los  registros
              de tamaño variable, y el carácter de relleno para los registros de tamaño fijo.  Si
              no se especifica un valor, se utilizan caracteres `nueva línea' ("\n") para  marcar
              el  final de los registros de longitud variable y los registros de longitud fija se
              completan con espacios.

       bfname El método de acceso regnum  almacena  las  copias  residentes  en  memoria  de  sus
              registros  en  un árbolB.  Si bfname no es NULL, especifica el nombre de un fichero
              árbolB, como si se especificara el nombre de fichero para una llamadada a dbopen(3)
              de un fichero árbolB.

       La  parte de datos del par clave/datos usado por el método de acceso recno es la misma que
       la de los otros métodos de acceso.  La clave es diferente.  El  campo  data  de  la  clave
       debería ser un puntero a una posición de memoria del tipo recno_t, tal y como se define en
       el fichero cabecera <db.h>.  Normalmente, este tipo es el tipo entero sin signo más grande
       disponible para la implementación.  El campo size de la clave debería ser el tamaño de ese
       tipo.

       Ya que puede no haber ningún metadato asociado con los ficheros subyacentes del método  de
       acceso  regnum,  cualquier  cambio  realizado a los valores por defecto (por ejemplo, a la
       longitud de los registros de tamaño fijo o al  valor  del  separador  de  bytes)  se  debe
       especificar explícitamente cada vez que se abra el fichero.

       En  la  interfaz especificada por dbopen(3), el uso de la interfaz put para crear un nuevo
       registro provocará la creación de varios registros vacíos si  el  número  de  registro  es
       mayor, en más de uno, que el número del mayor registro actualmente en la base de datos.

ERRORES

       Las  rutinas del método de acceso regnum pueden fallar y asignar a errno cualquiera de los
       errores especificados para la rutina de biblioteca dbopen(3)  o el siguiente:

       EINVAL Se ha intentado añadir un registro a una base de datos de registros de tamaño  fijo
              que s demasiado grande para caber.

ERRORES

       Sólo  se  soportan  los  órdenes  de  bytes  ascedente (el byte de mayor peso el último) y
       descendente (el byte de menor peso el último).

VÉASE TAMBIÉN

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

       Document Processing in a Relational Database System, Michael Stonebraker, Heidi  Stettner,
       Joseph Kalash, Antonin Guttman, Nadene Lynn, Memorandum No. UCB/ERL M82/32, May 1982.

COLOFÓN

       Esta  página es parte de la versión 5.10 del proyecto Linux man-pages. Puede encontrar una
       descripción del proyecto, información sobre cómo informar errores y la última  versión  de
       esta página en https://www.kernel.org/doc/man-pages/.

TRADUCCIÓN

       La  traducción  al  español  de  esta  página  del  manual  fue  creada  por  Juan Piernas
       <piernas@ditec.um.es>

       Esta traducción es documentación libre; lea  la  GNU  General  Public  License  Version  3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  o posterior con respecto a las condiciones de
       copyright.  No existe NINGUNA RESPONSABILIDAD.

       Si encuentra algún error en la traducción de esta  página  del  manual,  envíe  un  correo
       electrónico a debian-l10n-spanish@lists.debian.org ⟨⟩.