3. Catalogul fisierelor: file - FILES.DBF

Catalogul fisierelor tine evidenta fisierelor care fac parte din baza de date. Acest catalog este primordial pentru functionarea corecta a aplicatiilor si a utilitarului hUTIL. Aplicatiile HAMOR Soft se refera la fisierele bazei de date prin alias-uri, nedepinzand de numele DOS sau locul fisierelor in cadrul bazei de date. Principalul rol al catalogului fisierelor este de a face legatura dintre aceste alias-uri si fisierele fizice. Contine urmatoarele informatii despre fisiere: nume utilizator - descrie pe scurt contintul fisierului - este numele prin care va fi referit fisierul in cadrul mesajelor de orice fel (de ex. mesaje de eroare, ajutor etc.) - campul: User - character - 20 nume articol - numele utilizator ale articolelor din fisier - campul: User_SG - character - 20 numele fisierului - numele fisierului asa cum apare in sistemul de operare - este optional de completat - daca nu este completat atunci articolul defineste un catalog de lucru sau un catalog tinta - campul: Name - character - 8 alias-ul fisierului - este identificatorul fisierului prin care aplicatia se refera la el - fisierele pentru care interfata este implementata cu tehnologia hMET2 au aliasul format din 2 caractere in mod obligatoriu - campul: Alias - character - 4 de compactat - daca prin intermediul utilitarului hUTIL pot fi eliminate definitiv din fisier articolele marcate ca si "sters" (, caz in care fisierul apare in fereastra de fisier: hUTIL > Indexare/reorganizare > Reorganizare) - daca articolul din catalogul fisierelor se refera la un fisier cu un continut stabil sau la o mapa, compactarea nu are sens, deci valoarea trebuie setat la "nu" (false) - campul: Pack - logical - 1 aplicatii - contine codurile aplicatiilor care au acces la fisier - nu are importanta ordinea de aparitie a codurilor in sirul de caracter, dar are importanta daca sunt scrise cu litere mari sau mici - daca este vid, atunci au acces toate aplicatiile la acel fisier - codurile aplicatiilor HAMOR Soft - campul: Open - character - 10 de sortat - daca datele prin intermediul utilitarului hUTIL pot fi sortate dupa indecsii definiti - cu ocazia sortarii pentru fiecare index definit se recreaza fisierul NTX, iar in fisierul DBF se sorteaza articolele dupa cheia pentru care numele fisierului de index nu a fost completat (daca exista un asemenea index definit) - solicitarea sortarii are sens doar daca a fost permisa si impachetarea - campul: Sortpack - logical - 1 calea de acces - calea de acces la fisier/mapa de lucru - poate fi indicata: in mod absolut, pornind de la catalogul de radacina a discului de ex. C:\APL\LST relativ la catalogul bazei de date, adica la catalogul in care se afla FILES.DBF de ex. daca baza de date este: C:\HAMOR\DBF, atunci caile: FACT - inseamna: C:\HAMOR\DBF\FACT ..\LST - inseamna: C:\HAMOR\LST \LST - inseamna: C:\LST - campul: Path - character - 32 indecsii fisierului - pentru un fisier pot fi definite maxim 8 indecsi - un index este definit prin doua elemente: 1. - cheia dupa care se face indexarea - cheia poate sa fie format dintr-un singur camp sau poate fi o expresie CLIPPER mai complexa, eventual combinand continutul mai multor campuri - campurile: IndK1 - character -100 IndK2 - character -100 ... IndK8 - character -100 2. - numele fisierului care contine sortate cheile - numele fisierelor indecsi trebuie sa fie unice la nivelul bazei de date - se permite ca pentru un singur index sa nu fie completat numele fisierului de index ceea ce semnifica faptul ca indexarea dupa cheia respectiva se face in fisierul .dbf si intr-un .ntx - campurile: IndF1 - character -100 IndF2 - character -100 ... IndF8 - character -100 - in ce priveste expresia cheii, aceasta are o trasatura speciala: daca incepe cu un spatiu (" "), atunci interfata utilizator dedicata catalogului fisierelor permite modificarea ei, in cazul contrar nu - in general primul index al fisierelor nu poate fi modificat fiindca acestea sunt vitale pentru functionarea aplicatiei - indecsii definti influenteaza ordinea de afisare a datelor in ferestrele de fisier, astfel: - daca in fereastra de fisier campul curent din zona de filtru apare intr-un index atasat fisierului, fiind primul camp in expresia cheii de index, atunci datele se ordoneaza dupa acest index; - daca in zona de filtru se trece de la un camp la un alt camp, atunci se reexamineaza daca noul camp curent apare ca prim camp intr-un index, si daca da, atunci datele se reafiseaza dupa ordinea noii index (, articolul curent ramanand acelasi), si daca nu, nu se schimba nimic. numarul inregistrarilor marcate "sters" in fisier - cu ocazia stergerii unui articol dintr-un fisier dbf, acesta este marcat ca si "sters", in loc sa fie sters efectiv (fizic); din punctul de vedere al utilizatorului articolul nu mai exista, fiindca nu va mai aparea nicaieri in aplicatie; din cand in cand este necesar sa se forteze eliminarea fizica a acestor articole, mai ales in cazul fisierelor a caror continut se schimba considerabil, pentru a asigura o prelucrare mai rapida a datelor; - acest camp contine informatii de moment si reflecta realitatea doar dupa rularea operatiei hUTIL > Indexare/reorganizare > Alte opratii > Numarare articole sterse - scopul lui este de a ajuta administratorul sa decida daca fisierul trebuie reorganizat (compactat) sau nu - campul: NrDel - numeric - 6 numarul inregistrarilor existente in fisier - ia in calcul si pe cele marcate ca "sters" - acest camp contine informatii de moment si reflecta realitatea doar dupa rularea uneia dintre operatiile accesibile din hUTIL > Indexare/reorganizare > Alte opratii - ajuta administratorul bazei de date sa ia decizii optime privind intretinerea - campul: NrRec - numeric - 6 data ultimei indexari - cand a fost indexat fisierul ultima data - campul: LastInd - date - 8 data ultimei reorganizari - cand a fost reorganizat (compactat) fisierul ultima data - campul: LastPack - date - 8 deschis - arata daca fisierul a fost gasit si daca s-a reusit deschiderea lui, ceea ce inseamna ca poate fi utilizat in cadrul bazei de date - este o informatie de moment si reflecta realitatea doar dupa rularea operatiei: hUTIL > Indexare/reorganizare > Alte opratii > Incercare deschidere fisiere - campul: Opened - logical - 1 camp de verificare: - ne spune de cate ori a fost actualizata inregistrarea - tine de bucataria interna a aplicatiei, serveste serializarea in cazul utilizarii in retea a bazei de date - este ascunsa utilizatorului uzual, nu apare pe interfete - campul: Nr_Upd - numeric - 3 Catalogul fisierelor trebuie sa aiba numele de FILES.dbf si sa fie in radacina directoriului bazei de date. Aplicatiile HAMOR Soft interpreteaza un director ca fiind o baza de date proprie daca contine fisierul FILES.DBF. Celelalte fisiere chiar si cele de sistem nu este obligatoriu sa-si pastreze numele fizic si locul unde au fost instalate, cu conditia ca noul nume si loc al fisierului sa fie inscris in catalogul fisierelor. Totusi, pentru o mai buna intretinere a bazei de date in timp, nu se recomanda acest gen de "adaptare" a aplicatiilor. Catalogul de fisiere contine în mod obligatoriu descrierea fisierelor si cataloagelor de sistem hMET: apl - aplicatii comp - societatea copy - destinatia salvarilor file - catalogul fisierelor lst - catalogul de liste si fisierul LISTS.DBF paps - tipurile de hârtie prts - tipurile de imprimante save - grupe de fisiere pentru salvare tmp - catalogul de fisiere temporare stat - starea actuala a bazei de date, caracteristici principale ( de ex. luna bazei de date); numele fisierului fizic depinde de aplicatie, de ex. HSALAR.DBF, HCONT.DBF; Alte catogorii de fisiere: - fisiere de definitii hMET: gcmd - comenzi generale (aferenta unei aplicatii anume) gcmd - comenzi/utilitare (utilizat de hUTIL) - nomenclatoare dedicate: cont - plan de dont cf - constante si functii dict - dictionar firm - firme jud - judete loc - localitati sect - sectii tari - tari tdoc - tipuri de documente tjur - tipuri de jurnale - fisiere de definitii hMET2: cmpf - formule cmps - campuri tfl - operatii/ferestre/liste - fisiere hMET2 (generice): de ex. l_ - fisier dedicat pentru perioade p_ - nomenclator principal, contine descrierea obiectului principal urmarit in aplicatie - P_03 - cheia din tabel, contine codul identificator al obiectului n_ - nomenclator secundar - N_05 - cheia din tabel s_ - hSALAR - stat de salarii t2 - hSALAR - indemnizatii de asigurari sociale t1 - hSTOC - intrari de materiale, stocul cimp - fisierul de import e1 - fisierul intermediar cu nr. 1 de pregatire a datelor pentru export, de obicei rezervat pentru generarea articolelor contabile e2 ... e9 ea ... ef - fisierul intermediar cu nr. 15 de pregatire a datelor pentru export Obs. Daca aliasul incepe cu litera "t" atunci este vorba de un fisier tranzactional in care pentru obiectul principal al aplicatiei descris in p_ pot exista mai multe inregistrari si o inregistrare totalizatoare. De ex. in hSALAR, fisierul p_ contine persoanele angajate identificate prin Marca, iar in fisierul t_ ( - Lucrari) sunt inregistrari pe Marca si Norma. Sau in fisierul t2 ( - Indemnizatii de asigurari sociale) sunt inregistrari pe Marca si Cod indemnizatie. - fisiere de export atasate la fisiere generice: cexp - fisierul de export cu numarul 1, in general este utilizat pentru transmiterea articolelor contabile intre aplicatiile HAMOR Soft e2x - fisierul de export aferent fisierului generic e2 ... e9x .... eax ... efx - fisierul de export aferent fisierului generic ef - fisiere externe: ext1 ext2 ext3 ext4 In catalogul fisierelor acelasi alias poate fi definit de mai multe ori din cauza ca sub acelasi alias aplicatiile pot intelege fisiere diferite. Exemplu: informatiile de importat si exportat difera de la o aplicatie la alta si astfel si structurile fisierelor aferente trebuie sa difere. Restrictia este ca un alias pentru aceasi aplicatie sa nu fie definit de doua ori. FILES.dbf are o interfata proprie de gestionare a datelor integrata in aplicatia auxiliara hUTIL, accesibil din punctul de meniu: hUTIL > Fisiere sistem > Catalogul fisierelor prin care putem adauga, modifica, sterge articolele cu urmatoarele restrictii: nu sunt vizibile urmatoarele campuri: numarul inregistrarilor sterse numarul inregistrarilor existente data ultimei indexari data ultimei reorganizari deschis , acestea servind facilitatile din hUTIL > Indexare/reorganizare modificare - nu pot fi modificate campurile: alias; cheia acelor indecsi a caror expresie nu incepe cu " "; stergere - utilizatorul poate sterge orice inregistrare din catalogul fisierelor, dar daca a sters vreun fisier obligatoriu aplicatia devine inoperabila. Cu ocazia deschiderii ferestrei de articol datele despre indecsi nu sunt citite din FILES.dbf ci din fisierele indecsilor. Pentru ca indecsii definiti in catalogul fisierelor sa fie persistente, introducerea/modificarea lor trebuie facuta prin urmatorii pasi: - se introduc/modifica indecsii in fereastra de articol; - se inchide fereastra de articol cu salvare; - in hUTIL > Indexare/reorganizare > Indexare se indexeaza fisierul modificat pentru ca indecsii lui sa fie recreati dupa noile indicatii; - se revine in hUTIL > Fisiere sistem > Catalogul fisierelor si se vizualizeaza articolul pentru verificare. Numele fisierelor indecsi trebuie sa fie unice, dar interfata nu testeaza respectarea acestei reguli, astfel este in sarcina utilizatorului sa se asigure. Interfata este descrisa mai in detaliu in documentatia aplicatiei hUTIL.

Catalogul de fisiere local: FILES0.dbf

Utilizarea aplicatiilor in retea inseamna instalarea acestora pe un calculator (,de obicei pe server) si accesarea lor de la mai multe statii de lucru. In acest caz, se poate intampla, ca anumite setari din catalogul fisierelor sa nu fie adecvate pentru toate statiile. Pentru solutionarea acestei caz a fost introdus catalogul de fisiere local, care: - are structura identica cu FILES.dbf; - se numeste obligatoriu FILES0.dbf si aliasul lui este "fil0"; - trebuie sa fie descris in FILES.dbf; - se salveaza pe statie si este utilizat numai de aceasta; - este suficient sa contina definitiile acelor fisiere, care se personalizeaza pentru statia respectiva. La pornire programele HAMOR Soft cauta fisierul FILES.DBF in directoriul bazei de date. Dupa aceea se uita daca in FILES.DBF gaseste inregistrata fisierul "fil0", caz in care datele din acesta vor avea prioritate. FILES0.dbf are o interfata proprie de gestionare a datelor integrat in aplicatia auxiliara hUTIL, accesibil din punctul de meniu: hUTIL > Fisiere sistem > Catalogul fisierelor (local), interfata care functioneaza ca si interfata catalogului de fisiere. Punctul de meniu devine vizibil doar dupa ce in FILES.dbf a fost definit "fil0". Daca in momentul definirii lui "fil0" in catalogul fisierelor fisierul FILES0.dbf inca nu exista, atunci utilitarul il creaza automat. Exemple de probleme care pot fi rezolvate utilizand FILES0.dbf: 1. Daca într-o retea locala majoritatea statiilor lucreaza cu imprimanta pe LPT1 si o singura statie are definit spooler pentru hWPrint, atunci: - în Catalogul fisierelor se defineste fisierul: alias = "fil0" cale = "C:\HAMOR\" nume = "FILES0" - se porneste hUTIL aferent aplicatiei de pe statia care necesita spooler - in Catalogul fisierelor (local) se înscrie: alias = "prn" calea = "C:\HAMOR\SPOOL\hamor.lst." Pe celelalte statii, care utilizeaza LPT1, nu trebuie definit catalog local si nici "prn" local. 2. Revocarea dreptului de acces la anumite fisiere: daca în catalogul local al unei statii un fisier nu are calea si numele completat, înseamna ca de pe aceasta statie fisierul respectiv nu va fi "vazut" (nu se va deschide). 3. Fisierele sau mapele care asigura un loc de stocare temporara pentru diferite operatii se recomanda sa fie locale, chiar daca aplicatia se afla pe un server. De ex.: tmp, lst, spool. In cazul in care locul acestora nu este acelasi pe fiecare statie (de exemplu catalogul Tmp nu este pe fiecare statie C:\HAMOR\TMP), atunci cu FILES0.dbf se pot adapta descrierile pentru fiecare statie in parte. Observatie. Daca catalogul de fisiere local nu contine nimic specific, atunci se recomanda stergerea lui pentru a evita confuziile.

Fisiere externe

Fisierele utilizate de o baza de date care nu sunt localizate in interiorul (directoriul) bazei de date se considera a fi externe. Faptul ca un fisier este extern sau nu rezulta din catalogul fisierelor din campul "calea de acces". Calea de acces este o referinta externa daca se incepe cu una dintre urmatoarele siruri de caractere: - "..\" - "\" - "x:", unde x identifica un device. Fisierele externe necesita o atentie speciala atunci cand este vorba de copierea bazelor de date, fiindca scopul este ca si copiile bazelor de date sa fie functionale ceea ce insa nu va fi adevarat daca anumite fisiere externe nu vor fi copiate cu ele. Ca rezolvare s-a introdus solutia de recorporare a fisierelor externe. Ideea de baza a recorporarii este ca dupa copierea unei baze de date se verifica daca exista referinte externe in catalogul fisierelor si daca exista si sunt marcate ca trebuie recorporate, atunci ele se copiaza in interiorul bazei de date destinatie. Pentru ca recorporarea sa fie activa catalogul fisierelor trebuie sa contina inca doua campuri dupa PATH: fisierul trebuie recorporat - daca are valoarea "D" si fisierul este extern, atunci se recorporeaza - campul: LRecorp - character - 1 locul fisierului in baza de date destinatie - unde trebuie copiat fisierul in baza de date destinatie - calea de acces trebuie dat relativ la baza de date - daca nu este completat, atunci fisierul se copiaza in radacina bazei - campul: Recorp - character - 10 Aceste doua campuri nu pot fi editate din hUTIL. Eventual a se consulta din hSUPORT notele 00744, 00744/1.

Fisiere necuprinse in Catalogul fisierelor

Exista si fisiere DBF sau TXT care nu sunt inregistrate in Catalogul fisierelor, dar sunt utilizate sau generate de diferite facilitati ale aplicatiilor. Astfel de fisiere sunt: - cele din catalogul TMP, utilizate pentru stocare temporara de date; - cele care se creeaza in scripturile utilitarelor (cum ar fi Declaratii fiscale din hSALAR); - fisiere de export. De obicei pentru aceste fisiere se inregistreaza calea de acces, unde urmeaza sa fie create.