Man page - recno(3)

Packages contains this manual

Available languages:

en fr es ja ru ro

Manual

recno

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
ERREURS
BOGUES
VOIR AUSSI
TRADUCTION

NOM

recno - MĂ©thodes d’accĂšs aux bases de donnĂ©es avec enregistrements numĂ©rotĂ©s

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

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

DESCRIPTION

NOTE : cette page dĂ©crit des interfaces fournies jusqu’à la glibc 2.1. Depuis la glibc 2.2, la glibc ne fournit plus ces interfaces. Veuillez consulter les API fournies par la bibliothĂšque libdb .

La routine dbopen (3) est l’interface de bibliothĂšque pour les fichiers de base de donnĂ©es. L’un des formats de fichier pris en charge est celui avec enregistrements numĂ©rotĂ©s. La description gĂ©nĂ©rale des mĂ©thodes d’accĂšs Ă  une base de donnĂ©es est fournie dans la page de manuel dbopen (3). La page prĂ©sente ne dĂ©crit que les informations spĂ©cifiques aux enregistrements numĂ©rotĂ©s.

La structure de cette base de donnĂ©es est une sĂ©rie d’enregistrements de longueurs variables ou fixes, stockĂ©s dans un fichier linĂ©aire, et auxquels on accĂšde par les numĂ©ros logiques d’enregistrement. L’existence de l’enregistrement numĂ©ro 5 implique l’existence des enregistrements 1 à 4, et l’effacement du numĂ©ro 1 entraĂźne la renumĂ©rotation de l’enregistrement 5 en 4, ainsi que le dĂ©placement d’un cran du curseur s’il Ă©tait positionnĂ© aprĂšs l’enregistrement 1.

La structure de donnĂ©es spĂ©cifique pour l’accĂšs aux enregistrements numĂ©rotĂ©s, et que l’on transmet Ă  dbopen (3) est dĂ©finie dans <db.h> ainsi :

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

Les éléments de cette structure sont les suivants :

flags

La valeur de ce champ est calculée avec un OU binaire sur certaines des constantes suivantes :

R_FIXEDLEN

Les enregistrements ont une taille fixe, et non pas dĂ©limitĂ©s. Le champ reclen de la structure indique la longueur de l’enregistrement, et le champ bval contient le caractĂšre Ă  utiliser pour les remplissages Ă©ventuels. Tout enregistrement, insĂ©rĂ© dans la base de donnĂ©es, ayant moins de reclen octets de long sera automatiquement allongĂ©.

R_NOKEY

Avec l’interface spĂ©cifiĂ©e par dbopen (3), le parcours sĂ©quentiel renseigne Ă  la fois la structure clĂ© de l’appelant, et la structure des donnĂ©es . Si l’argument R_NOKEY est utilisĂ©, les routines de gestion du curseur ne sont pas obligĂ©es de remplir la structure clĂ©. Cela permet aux applications d’accĂ©der Ă  des enregistrements en fin de fichier sans avoir Ă  relire tous les enregistrements prĂ©cĂ©dents.

R_SNAPSHOT

Ce drapeau demande qu’une image du fichier soit saisie lorsque dbopen (3) est ouvert, plutĂŽt que de lire tout enregistrement non modifiĂ© dans le fichier original.

cachesize

Une taille maximale suggĂ©rĂ©e de mĂ©moire cache, en octets. Cela n’a qu’une valeur indicative , et les mĂ©thodes d’accĂšs alloueront plus de mĂ©moire plutĂŽt que d’échouer. Si cachesize vaut 0 (pas de taille indiquĂ©e) on utilise une valeur par dĂ©faut.

psize

La mĂ©thode d’accĂšs recno stocke les copies en mĂ©moire de ses enregistrements dans un arbre B-tree. Cette valeur est la taille (en octets) des pages Ă  utiliser pour les nƓuds de cet arbre. Si psize vaut 0 (pas de taille indiquĂ©e), une taille de page est choisie en fonction des tailles de blocs d’entrĂ©e-sortie du systĂšme de fichiers sous-jacent. Consultez btree (3) pour plus d’informations.

lorder

L’ordre des octets des entiers stockĂ©s dans la base de donnĂ©es. Ce nombre doit reprĂ©senter l’ordre sous forme d’entier. Par exemple, l’ordre poids faible poids fort (gros boutiste) est reprĂ©sentĂ© par le nombre 4321. Si lorder vaut 0 (aucun ordre indiquĂ©), on utilise l’ordre des octets du systĂšme hĂŽte.

reclen

La longueur des enregistrements de taille fixe.

bval

L’octet de marquage servant Ă  dĂ©limiter les enregistrements de longueurs variables, et l’octet de remplissage pour les enregistrements de taille fixe. Si aucune valeur n’est indiquĂ©e, le caractĂšre fin-de-ligne « \n » est utilisĂ© comma dĂ©limiteur et les enregistrements de tailles fixes sont complĂ©tĂ©s avec des espaces.

bfname

La mĂ©thode d’accĂšs recno stocke les copies en mĂ©moire de ses enregistrements dans un arbre B-tree. Si bfname n’est pas NULL, il indique le nom du fichier B-tree, comme s’il s’agissait du nom du fichier pour un appel Ă  dbopen (3).

La partie « donnĂ©e » des paires clĂ©s/donnĂ©ees utilisĂ©es par la mĂ©thode d’accĂšs recno est la mĂȘme que pour les autres mĂ©thodes d’accĂšs. La clĂ© est diffĂ©rente. Le champ data de la clĂ© doit ĂȘtre un pointeur sur un emplacement mĂ©moire du type recno_t , tel qu’il est dĂ©fini dans le fichier d’en-tĂȘte <db.h> . Ce type est normalement le plus grand des types d’entiers non signĂ©s disponibles pour l’implĂ©mentation. Le champ size doit contenir la longueur de ce type de donnĂ©e.

Comme il ne peut pas y avoir de mĂ©ta-donnĂ©es associĂ©es aux fichiers sous-jacent aux mĂ©thodes recno, tout changement par rapport aux valeurs par dĂ©faut (par exemple longueur des enregistrements fixes, ou caractĂšre sĂ©parateur) doit ĂȘtre indiquĂ© explicitement Ă  chaque fois que le fichier est ouvert.

Avec l’interface indiquĂ©e par dbopen (3), l’utilisation de la routine put pour crĂ©er un nouvel enregistrement causera la crĂ©ation de plusieurs enregistrements vides si le numĂ©ro d’enregistrement est supĂ©rieur de plus d’une unitĂ© au plus grand numĂ©ro dĂ©jĂ  prĂ©sent dans la base de donnĂ©es.

ERREURS

Les routines des mĂ©thodes d’accĂšs recno peuvent Ă©chouer et remplir errno avec n’importe quelle erreur indiquĂ©e par la routine dbopen (3) ou la suivante :

EINVAL

On a essayĂ© d’ajouter un enregistrement trop grand dans une base de donnĂ©es avec longueurs fixes.

BOGUES

Seuls les ordres d’octets gros boutiste (big-endian) et petit boutiste (little-endian) fonctionnent.

VOIR AUSSI

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.

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org> et David Prévot <david@tilapin.org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .