Provided by: manpages-fr_1.67.0-1_all bug

NOM

       recno  -  Méthodes  d’accès  aux  bases de données avec enregistrements
       numérotés.

SYNOPSIS

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

DESCRIPTION

       La routine dbopen est l’interface de bibliothèque pour les fichiers  de
       base  de données.  L’un des formats de fichier supportés 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 ds 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  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 est définie dans <db.h>  ainsi
       :

       typedef struct {
              u_long flags;
              u_int cachesize;
              u_int psize;
              int lorder;
              size_t reclen;
              u_char bval;
              char *bfname;
       } RECNOINFO;

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

       flags  La  valeur  de  ce  champ  est  calculé  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
                     alongé.

              R_NOKEY
                     Avec  l’interface  spécifiée  par  dbopen,  le   parcours
                     séquentiel  renseigne  à  la  fois  la  structure  cl de
                     l’appelant, et la structure des donnes.   Si  l’argument
                     R_NOKEY est utilisé les routines de gestion du curseur ne
                     sont pas obligées de  remplir  la  structure  clé.   Ceci
                     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  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. Ceci
              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 noeuds  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.  Voir btree(3) pour
              plus d’information.

       lorder L’ordre des octets pour les 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  (big
              endian)  est  représenté  par  le nombre 4321.  Si lorder vaut 0
              (pas d’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-lignes (‘‘\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.

       La  partie  ‘‘donnée’’  des  paires  clés/donnéees  utilisées  par  les
       méthodes  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, ainsi 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, 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 au enregistrements numrots 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.

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.

BOGUES

       Seuls les ordres d’octets big-endian et little-endian fonctionnent.

TRADUCTION

       Christophe Blaess, 1999-2003.