Foxpro
Operatii elementare asupra bazelor de dateCrearea si manipularea structurii conceptualeDefinirea structurii conceptuale a bazei de date este o operatie foarte importanta, de care poate depinde intregul proiect al aplicatiei. Proiectarea structurii logice porneste de la “IESIRI”, adica de la cererile de informatii, de la rezultatele pe care aplicatia informatica trebuie sa le furnizeze decidentilor. Dupa inventarierea tuturor cererilor de informatii se determina “INTRARILE” adica datele care pot fi retinute intr-o baza de date. In general, se evita modificarea structurii conceptuale; de aceea administratorul bazei de date, cel care face proiectarea structurii, trebuie sa analizeze nu numai cererile prezente de informatii, pe care aplicatia informatica trebuie sa le ofere, cat si cererile posibile in viitor sau solicitate accidental. Structura conceptuala este ansamblul campurilor cu denumirea, lungimea si tipul lor, precum si ordinea de definire a acestor campuri. Crearea structurii se realizeaza cu comanda CREATE CREATE <fis.dbf> Comanda CREATE permite deschiderea unui ecran de proiectare a structurii bazei de date si, prin dialog cu utilizatorul, defineste structura unei baze de date: numele fiecarui camp, tipul, lungimea sa, numarul de zecimale si daca respectivul camp va fi cheie de indexare intr-un fisier multiindex asociat bazei de date. Utilizatorul poate introduce date imediat dupa salvarea structurii raspunzand afirmativ la intrebarea sistemului: input data records now?(y/n) La un raspuns “Y” se deschide ecranul de introducere a datelor (un ecran standard) in care apare pe linii campurile din structura cu numele lor si, alaturat, o zona invers video cu lungimea egala cu a campului a carei valoare o va cuprinde. Observatie Daca se iese accidental din ecranul de introducere si mai sunt articole de adaugat, se poate folosi comanda APPEND. Exemplu: creerea bazei de date mijloacef.dbf, memorand starea mijloacelor fixe ale unei unitati economice, cu structura: COD character 10 codul mijlocului fix DENUMIRE character 30 denumirea VALOARE numeric 10 valoarea AMORTIZARE numeric 10 valoarea amortizata LOC_FOLOS memo 10 locul de folosinta STARE logical 1 starea (in folosinta .T. , nefolosit .F.) DATA_INST date 8 data instalarii, puneriiin functionare se realizeaza cu comanda: CREATE TABLE mijloacef; ( cod C (10), denumirea C (30), valoare N(10), amortizare N(10),; loc_folos M, stare L, data_inst D ) Deschiderea si inchiderea bazei de dateOrice operatie, cu exceptia creerii bazei de date, presupune deschiderea acesteia iar dupa terminarea activitatii asupra datelor respective bazele de date trebuiesc inchise.
Comanda de deschidere a bazei de date este USE: USE<fis.dbf> Comanda USE deschide baza de date de nume specificat inchizand, eventual, o alta baza de date daca este deschisa. Extensia este implicita. Comanda de inchidere a bazei de date deschisa anterior este: USE Exemplu use mijloacef && s-a deschis baza de date mijloacef use produse && s-a inchis baza mijloacef si s-a deschis baza produse use && s-a inchis baza de date produse Zone de lucruSunt multe aplicatii care necesita accesul simultan la mai multe baze de date. Pentru aceste situatii se folosesc zone distincte de memorie numite zone de lucru. Intr-o zona de lucru se poate deschide o singura baza de date. In diferite variante ale pachetului de programe dBASE numarul de zone variaza: -in dBASE 4 sunt 10 zone de lucru identificate prin numere de la 1 la 10 sau literele A-J, -in FoxPro sunt 25 zone de lucru identificate cu numerele 1-25 sau cu literele alfaberului A-J (pentru primele 10) si W11-W25 (pentru zonele 11-25). Indicarea zonei de lucru unde se vor desfasura urmatoarele operatii se face prin: SELECT <zona> / <nume-alias> Comanda functioneaza ca un comutator pe zona data prin constructia <zona> (ce poate fi numar sau litera asociata zonei de lucru) sau prin constructia <nume-alias> care este o prescurtare a numelui de fisier deschis in zona. Deschiderea unei baze de date intr-o zona se poate face prin comanda USE cu o clauza noua, clauzain <zona>. Tot prin comanda USE se poate asocia si un alias (un pseudonim, o prescurtare) in vederea unei referiri mai clare atat a campurilor cat si a zonei in care s-a deschis fisierul. USE <fis.dbf>in <zona> [ALIAS <nume-alias>] Calificarea campurilor: Atunci cand sunt deschise mai multe fisiere, referirea la campurile lor se poate face printr-o constructie de forma: <zona>/<nume-alias> <separator> <nume-camp>, unde <zona> este litera asociata zonei unde s-a deschis fisierul; <separator> este format din semnele -> (minus si mai mare). Exemplu: A->nume 0 Comenzile de pozitionare ca si functiile asupra bazelor de date pot avea referire directa in zona cercetata. Astfel clauzain poate completa comenzile: GOTO/GO/GO TOP/GO BOTTOM in <zona> SKIP [+/-]<n>in <zona> Aliasul fisierului poate sa apara si in functiile care lucreaza asupra fisierelor: 1) EOF(<zona>) && testeaza sfarsitul de fisier din zona <zona> 2) BOF(<zona>) && testeaza pozitia inaintea primului articol && din zona <zona> 3) RECNO(<zona> && da numarul articolului curent din fisierul && deschis in zona <zona> Functii necesare: SELECT () && da primul numar de zona liber de folosit. Observatie importanta: Zonele de lucru sunt izolate; modificarea pointerului de inregistrare ca urmare a unei actiuni intr-o baza de date nu poate determina modificarea pointerului unei alteia, deschisa in alta zona de lucru. Fac exceptie de la aceasta regula fisierele inlantuite cu SET RELATION. Exemplu: ? SELECT ( ) && afiseaza zona de lucru curenta 1 USE mijloacef NOTE s-a deschis baza de date mijloacefin zona de lucru 1 USE && s-a inchis baza de date USE mijloacef in 2 NOTE s-a deschis baza de datein zona de lucru 2, chiar daca zona curenta; de lucru a fost si va ramane 1 USEin 2 && se inchide baza de date din 2 Observatie: in FoxPro o aceeasi baza de date se poate deschide in zone diferite folosind in acest scop clauza AGAIN in comanda de deschidere. Exemplu: SELECT a USE mijloacef in 1 USE mijloacef AGAIN ? USED ( ) && testeaza folosirea zonei de lucru 1 .T. ? USED (2 ) && testeaza folosirea zonei de lucru 2 .F. ? USED ( ‘mijloacef” ) NOTE testeaza daca exista baza de date cu aliasul mijloacef; intr-o zona de lucru .T. USE USEin 1
|