Provided by: manpages-ro-dev_4.27.0-1_all 

NUME
recno - metodă de acces la baza de date cu numărul de înregistrare
BIBLIOTECA
Biblioteca C standard (libc, -lc)
SINOPSIS
#include <sys/types.h> #include <db.h>
DESCRIERE
Notează bine: Această pagină documentează interfețele furnizate până la glibc 2.1. Începând cu glibc 2.2,
glibc nu mai furnizează aceste interfețe. Probabil că, în schimb, căutați API-urile furnizate de
biblioteca libdbb.
Rutina dbopen(3) este interfața bibliotecii cu fișierele de baze de date. Unul dintre formatele de
fișiere acceptate este cel al fișierelor cu numere de înregistrare. Descrierea generală a metodelor de
accesare a bazei de date se găsește în dbopen(3), această pagină de manual descrie doar informațiile
specifice pentru recno.
Structura de date a numărului de înregistrare este formată din înregistrări cu lungime variabilă sau fixă
stocate într-un format de fișier plat, accesate prin numărul logic de înregistrare. Existența
înregistrării cu numărul cinci implică existența înregistrărilor de la unu la patru, iar ștergerea
înregistrării cu numărul unu face ca înregistrarea cu numărul cinci să fie renumerotată în înregistrarea
cu numărul patru, iar cursorul, dacă este poziționat după înregistrarea cu numărul unu, să se deplaseze
cu o înregistrare în jos.
Structura de date specifică metodei de acces recno furnizată lui dbopen(3) este definită în fișierul de
includere <db.h> după cum urmează:
typedef struct {
unsigned long flags;
unsigned int cachesize;
unsigned int psize;
int lorder;
size_t reclen;
unsigned char bval;
char *bfname;
} RECNOINFO;
Elementele acestei structuri sunt definite după cum urmează:
flags Valoarea fanionului este specificată prin combinarea prin OR a oricăreia dintre următoarele
valori:
R_FIXEDLEN
Înregistrările sunt de lungime fixă, nu sunt delimitate de octeți. Elementul de structură
reclen specifică lungimea înregistrării, iar elementul de structură bval este utilizat ca
caracter de rezervă. Toate înregistrările inserate în baza de date care au o lungime mai
mică de reclen octeți sunt automat completate.
R_NOKEY
În interfața specificată de dbopen(3), recuperarea secvențială a înregistrărilor
completează atât cheia, cât și structurile de date ale apelantului. În cazul în care se
specifică indicatorul R_NOKEY, rutinele cursor nu trebuie să completeze structura cheie.
Acest lucru permite aplicațiilor să recupereze înregistrările de la sfârșitul fișierelor
fără a citi toate înregistrările intermediare.
R_SNAPSHOT
Acest fanion impune ca o imagine instantanee a fișierului să fie luată atunci când este
apelat dbopen(3), în loc să permită citirea înregistrărilor nemodificate din fișierul
original.
cachesize
Dimensiunea maximă sugerată, în octeți, a memoriei cache. Această valoare este numai consultativă,
iar metoda de acces va aloca mai multă memorie în loc să eșueze. Dacă cachesize este 0 (nu este
specificată nicio dimensiune), se utilizează o memorie cache implicită.
psize Metoda de acces recno stochează copiile în memorie ale înregistrărilor sale într-un btree. Această
valoare reprezintă dimensiunea (în octeți) a paginilor utilizate pentru nodurile din arborele
respectiv. Dacă psize este 0 (nu este specificată dimensiunea paginii), dimensiunea paginii este
aleasă pe baza dimensiunii blocului de intrare/ieșire din sistemul de fișiere. Pentru mai multe
informații, consultați btree(3).
lorder Ordinea octeților pentru numerele întregi din metadatele stocate în baza de date. Numărul ar
trebui să reprezinte ordinea ca număr întreg; de exemplu, ordinea big endian ar fi numărul 4,321.
Dacă lorder este 0 (nu se specifică nicio ordine), se utilizează ordinea curentă a gazdei.
reclen Lungimea unei înregistrări de lungime fixă.
bval Octetul de delimitare care trebuie utilizat pentru a marca sfârșitul unei înregistrări în cazul
înregistrărilor de lungime variabilă și caracterul de umplere în cazul înregistrărilor de lungime
fixă. Dacă nu se specifică nicio valoare, se utilizează linii noi („\n”) pentru a marca sfârșitul
înregistrărilor de lungime variabilă, iar înregistrările de lungime fixă sunt completate cu
spații.
bfname Metoda de acces recno stochează copiile în memorie ale înregistrărilor sale într-un btree. Dacă
bfname nu este NULL, se specifică numele fișierului btree, ca și cum ar fi specificat ca nume de
fișier pentru un dbopen(3) al unui fișier btree.
Partea de date a perechii cheie/date utilizată de metoda de acces recno este aceeași cu cea a altor
metode de acces. Cheia este diferită. Câmpul data al cheii trebuie să fie un indicator la o locație de
memorie de tip recno_t, așa cum este definit în fișierul de includere <db.h>. Acest tip este, în mod
normal, cel mai mare tip integral fără semn disponibil pentru implementare. Câmpul size al cheii trebuie
să fie dimensiunea acestui tip.
Deoarece nu pot exista metadate asociate cu fișierele de bază ale metodei de acces recno, orice
modificări aduse valorilor implicite (de exemplu, lungimea fixă a înregistrării sau valoarea
separatorului de octeți) trebuie să fie specificate în mod explicit de fiecare dată când fișierul este
deschis.
În interfața specificată de dbopen(3), utilizarea interfeței put pentru a crea o nouă înregistrare va
duce la crearea mai multor înregistrări goale dacă numărul înregistrării este cu mai mult de unu mai mare
decât cea mai mare înregistrare existentă în prezent în baza de date.
ERORI-IEȘIRE
Rutinele metodei de acces recno pot eșua și configura errno pentru oricare dintre erorile specificate
pentru rutina de bibliotecă dbopen(3) sau pentru următoarele:
EINVAL S-a încercat adăugarea unei înregistrări la o bază de date cu lungime fixă care era prea mare
pentru a încăpea.
ERORI
Se acceptă numai ordinea big și little endian a octeților.
CONSULTAȚI ȘI
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 nr. UCB/ERL M82/32, mai 1982.
TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu
<remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o
versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO
RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
ro@lists.sourceforge.net.
4.4 Berkeley Distribution 15 iunie 2024 recno(3)