recno(3) Library Functions Manual recno(3) NUME recno - metoda de acces la baza de date cu numarul de inregistrare BIBLIOTECA Biblioteca C standard (libc, -lc) SINOPSIS #include #include DESCRIERE Noteaza bine: Aceasta pagina documenteaza interfeele furnizate pana la glibc 2.1. Incepand cu glibc 2.2, glibc nu mai furnizeaza aceste interfee. Probabil ca, in schimb, cautai API-urile furnizate de biblioteca libdbb. Rutina dbopen(3) este interfaa bibliotecii cu fiierele de baze de date. Unul dintre formatele de fiiere acceptate este cel al fiierelor cu numere de inregistrare. Descrierea generala a metodelor de accesare a bazei de date se gasete in dbopen(3), aceasta pagina de manual descrie doar informaiile specifice pentru recno. Structura de date a numarului de inregistrare este formata din inregistrari cu lungime variabila sau fixa stocate intr-un format de fiier plat, accesate prin numarul logic de inregistrare. Existena inregistrarii cu numarul cinci implica existena inregistrarilor de la unu la patru, iar tergerea inregistrarii cu numarul unu face ca inregistrarea cu numarul cinci sa fie renumerotata in inregistrarea cu numarul patru, iar cursorul, daca este poziionat dupa inregistrarea cu numarul unu, sa se deplaseze cu o inregistrare in jos. Structura de date specifica metodei de acces recno furnizata lui dbopen(3) este definita in fiierul de includere dupa cum urmeaza: 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 dupa cum urmeaza: flags Valoarea fanionului este specificata prin combinarea prin OR a oricareia dintre urmatoarele valori: R_FIXEDLEN Inregistrarile sunt de lungime fixa, nu sunt delimitate de octei. Elementul de structura reclen specifica lungimea inregistrarii, iar elementul de structura bval este utilizat ca caracter de rezerva. Toate inregistrarile inserate in baza de date care au o lungime mai mica de reclen octei sunt automat completate. R_NOKEY In interfaa specificata de dbopen(3), recuperarea secveniala a inregistrarilor completeaza atat cheia, cat i structurile de date ale apelantului. In cazul in care se specifica indicatorul R_NOKEY, rutinele cursor nu trebuie sa completeze structura cheie. Acest lucru permite aplicaiilor sa recupereze inregistrarile de la sfaritul fiierelor fara a citi toate inregistrarile intermediare. R_SNAPSHOT Acest fanion impune ca o imagine instantanee a fiierului sa fie luata atunci cand este apelat dbopen(3), in loc sa permita citirea inregistrarilor nemodificate din fiierul original. cachesize Dimensiunea maxima sugerata, in octei, a memoriei cache. Aceasta valoare este numai consultativa, iar metoda de acces va aloca mai multa memorie in loc sa eueze. Daca cachesize este 0 (nu este specificata nicio dimensiune), se utilizeaza o memorie cache implicita. psize Metoda de acces recno stocheaza copiile in memorie ale inregistrarilor sale intr-un btree. Aceasta valoare reprezinta dimensiunea (in octei) a paginilor utilizate pentru nodurile din arborele respectiv. Daca psize este 0 (nu este specificata dimensiunea paginii), dimensiunea paginii este aleasa pe baza dimensiunii blocului de intrare/ieire din sistemul de fiiere. Pentru mai multe informaii, consultai btree(3). lorder Ordinea octeilor pentru numerele intregi din metadatele stocate in baza de date. Numarul ar trebui sa reprezinte ordinea ca numar intreg; de exemplu, ordinea big endian ar fi numarul 4,321. Daca lorder este 0 (nu se specifica nicio ordine), se utilizeaza ordinea curenta a gazdei. reclen Lungimea unei inregistrari de lungime fixa. bval Octetul de delimitare care trebuie utilizat pentru a marca sfaritul unei inregistrari in cazul inregistrarilor de lungime variabila i caracterul de umplere in cazul inregistrarilor de lungime fixa. Daca nu se specifica nicio valoare, se utilizeaza linii noi (,,\n") pentru a marca sfaritul inregistrarilor de lungime variabila, iar inregistrarile de lungime fixa sunt completate cu spaii. bfname Metoda de acces recno stocheaza copiile in memorie ale inregistrarilor sale intr-un btree. Daca bfname nu este NULL, se specifica numele fiierului btree, ca i cum ar fi specificat ca nume de fiier pentru un dbopen(3) al unui fiier btree. Partea de date a perechii cheie/date utilizata de metoda de acces recno este aceeai cu cea a altor metode de acces. Cheia este diferita. Campul data al cheii trebuie sa fie un indicator la o locaie de memorie de tip recno_t, aa cum este definit in fiierul de includere . Acest tip este, in mod normal, cel mai mare tip integral fara semn disponibil pentru implementare. Campul size al cheii trebuie sa fie dimensiunea acestui tip. Deoarece nu pot exista metadate asociate cu fiierele de baza ale metodei de acces recno, orice modificari aduse valorilor implicite (de exemplu, lungimea fixa a inregistrarii sau valoarea separatorului de octei) trebuie sa fie specificate in mod explicit de fiecare data cand fiierul este deschis. In interfaa specificata de dbopen(3), utilizarea interfeei put pentru a crea o noua inregistrare va duce la crearea mai multor inregistrari goale daca numarul inregistrarii este cu mai mult de unu mai mare decat cea mai mare inregistrare existenta in prezent in baza de date. ERORI-IEIRE Rutinele metodei de acces recno pot eua i configura errno pentru oricare dintre erorile specificate pentru rutina de biblioteca dbopen(3) sau pentru urmatoarele: EINVAL S-a incercat adaugarea unei inregistrari la o baza de date cu lungime fixa care era prea mare pentru a incapea. ERORI Se accepta numai ordinea big i little endian a octeilor. CONSULTAI 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 in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . 4.4 Berkeley Distribution 23 iulie 2024 recno(3)