Provided by: manpages-es-dev_4.23.1-1_all 

NOMBRE
recno - método de acceso a bases de datos con registros numerados
BIBLIOTECA
Biblioteca Estándar C (libc, -lc)
SINOPSIS
#include <sys/types.h> #include <db.h>
DESCRIPCIÓN
Note well: This page documents interfaces provided up until glibc 2.1. Since glibc 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.
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 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.
4.4 Berkeley Distribution 2 Mayo 2024 recno(3)