baze de date in visual foxpro

Click here to load reader

Post on 13-Jun-2015

14.952 views

Category:

Documents

10 download

Embed Size (px)

TRANSCRIPT

Baze de date n Visual FoxPro

1

Baze de date n Visual FoxPro

1. Tabele de dateFoxPro este un mediu de dezvoltare integrat, care, pe lng instrumentele de programare, ofer i un sistem de tabele de date relaionale care simplific procesele de gestionare i organizare eficient a datelor. Datele sunt organizate tabelar, pe linii (records, articole nregistrri) i coloane (fields, cmpuri), mai multe tabele, ntre care exist legturi, alctuind o baz de date relaional.

1.1. Crearea unui tabel de date definirea structurii Crearea unui tabel de date implic specificarea numelui tabelului (fiier cu extensia implicit DBF) i este iniiat prin comanda CREATE [] sau prin alegerea opiunii File, New (n acest caz n caseta New se selecteaz Table i New file). Ca urmare pe ecran este deschis fereastra constructorului de tabele, n care vor fi precizate caracteristicile noului tabel (nume, tip, lungime, etc.) i a indecilor folosii la ordonarea datelor din list. Fiecare cmp (field, coloan) al unui tabel este caracterizat prin: nume (Name); tip (Type) - ir de caractere, numeric, dat calendaristic sau moment de timp, logic, memo;

2

Baze de date n Visual FoxPro

lime (Width) - numrul de caractere pe care l ocup fiecare dat memorat n acel cmp; numrul de zecimale (Decimal) - pentru datele de tip numeric;

fanionul de indexare (Index) - indic dac se stabilete un index pe cmpul respectiv (indecii reprezint o tehnologie cu ajutorul creia datele din tabele sunt vzute ntr-o anumit ordine, dat de un anumit criteriu numit criteriu de indexare);

fanionul de valoare nul (NULL) - arat dac n cmpul respectiv poate fi memorat o valoare nul, pentru a se face diferenierea ntre un cmp lsat necompletat i unul completat cu valoarea 0.

1.2. Deschiderea (activarea) tabelelor de date Pentru iniierea unei sesiuni de lucru cu un tabel de date, acesta trebuie s fie activat (deschis). Deschiderea unui tabel de date se poate realiza prin meniu (File, Open, Files of type: Table (*.dbf)) sau prin comanda USE: USE [] [IN ] [TAG ] [ASCENDING DESCENDING] [ALIAS ] [EXCLUSIVE] [NOUPDATE]

Baze de date n Visual FoxPro

3

o - numele tabelului de date care va fi deschis (extensia implicit DBF); o IN - permite deschiderea unui tabel de date ntr-o alt zon de lucru dect cea curent; o TAG - face precizarea unei variante de indexare; o ASCENDING DESCENDING precizeaz tipul ordonrii (implicit ascendent) atunci cnd se folosete indexarea; o ALIAS - stabilete un nou alias; o EXCLUSIVE - asigur exclusivitatea folosirii unui tabel de date atunci cnd se lucreaz ntr-o reea de calcul; o NOUPDATE - protejeaz tabelul de date la scriere (este deschis doar pentru consultare). Observaii Derularea unei sesiuni de lucru n FoxPro se realizeaz n directorul de lucru implicit. Acest director poate fi schimbat prin comanda: SET DEFAULT TO unde path definete noul director.

Lista tabelelor de date aflate n directorul de lucru poate fi obinut prin lansarea comenzii: DIR Se poate limita, temporar, accesul la nregistrrile tabelului de date prin folosirea comenzii: SET FILTER TO

4

Baze de date n Visual FoxPro

Zone de lucru Pentru manipularea simultan a mai multor tabele de date, FoxPro folosete zone speciale de memorie numite zone de lucru, n care depune informaiile necesare efecturii operaiilor cu tabelele de date respective. Pentru identificarea unei zone de lucru se folosesc alias-uri (literele A, B, C sau cifrele 1, 2, 3, ) care permit identificarea tabelelor de date i altfel dect prin numele lor. n afar de aceste alias-uri utilizatorul poate defini i propriile sale alias-uri. Observaii La pornirea FoxPro-ului zona de lucru implicit va fi zona 1 (cu alias 1 sau A). Aceasta se poate schimba prin comanda : SELECT Comanda este urmat de o cifr, liter sau de un alias definit de utilizator. Dac alias-ul este 0 se va selecta prima zon de lucru neselectat. Pentru a obine informaii despre zonele de lucru folosite i tabelele de date deschise se pot folosi dou funcii: USED([]) i DBF([])

Funcia USED returneaz .T. sau .F. dac, n zona de lucru curent sau precizat prin alias, este sau nu prelucrat un tabel de date. Funcia DBF returneaz numele tabelului de date deschis n zona de lucru.

Baze de date n Visual FoxPro

5

Exemple:use personal in 1 use nomenclator in B alias nomen select nomen ?dbf() C:\PROGRAM FILES\DEVSTUDIO\VFP\JOB\NOMENCLATOR.DBF ?used(1) .T.

1.3. Modificarea structurii unui tabel de date Modificarea caracteristicilor unui tabel de date poate fi fcut prin comanda: MODIFY STRUCTURE Aceast comand permite modificarea structurii tabelului de date activ prin deschiderea unei ferestre de dialog, aceeai ca la crearea tabelului de date. Modificrile care pot fi aduse structurii unui tabel de date sunt : schimbarea numelor, tipurilor i limii cmpurilor deja existente; tergeri, inserri de cmpuri, prin plasarea cursorului pe zona de modificare (prima coloan din fereastra de dialog) i acionarea butoanelor Delete i Insert.

Dup efectuarea modificrilor, FoxPro copiaz coninutul tabelului de date vechi n tabelul de date nou, cu efectuarea schimbrilor respective. Caracteristicile unui tabel de date (structura) pot fi vizualizate prin comanda: DISPLAY STRUCTURE

6

Baze de date n Visual FoxPro

1.4. nchiderea prelucrrii tabelelor de date Finalizarea operaiei de prelucrare a tabelelor se poate face prin comenzile: USE sau CLOSE ALL

Prima comanda nchide prelucrarea tabelului de date din zona de lucru curent iar a doua nchide i elibereaz toate zonele de lucru (n acest caz zona curent devine zona de lucru 1).

1.5. Editarea coninutului unui tabel de date Prelucrarea nregistrrilor. nregistrarea curent. Un grup de nregistrri (domeniu) poate fi: All semnific toate nregistrrile tabelei; Next urmtoarele nregistrri; Record - nregistrarea cu numrul de ordine specificat; Rest restul nregistrrilor din poziia curent pn la sfritul tabelului. Prelucrarea tabelelor de date se realizeaz la nivel de nregistrare. La un moment dat este activ un singur tabel de date i o singur nregistrare din acest tabel. Fiecare nregistrare are un numr de ordine, asociat acesteia la introducerea ei n tabelul de date. Numrul de ordine al nregistrrii curente poate fi modificat prin comenzile: GOTO TOP | BOTTOM | RECORD (salt la prima, ultima sau nregistrarea precizat din tabel);

Baze de date n Visual FoxPro

7

SKIP [] (salt nainte sau napoi cu un numr de nregistrri); LOCATE [] [FOR ] [WHILE ] (cut prima nregistrare care respect condiia , domeniul nregistrrilor fiind dat de clauzele i WHILE). Poziia curent n tabelul de date poate fi stabilit cu ajutorul funciilor: EOF() returneaz .T. sau .F. dup cum este detectat sau nu marcajul de sfrit de fiier (aflat dup ultima nregistrare); BOF() returneaz .T. sau .F. pentru nceput de fiier; RECNO() furnizeaz numrul de ordine al nregistrrii curente. Exemple:use personal ?recno() 1 goto record 7 ?recno() 7 goto top ?recno() 1 skip 1 ?bof() .T. skip 3 ?recno() 3 go bottom skip ?eof() .T. locate for nume=ALEX

8

Baze de date n Visual FoxPro

Introducerea nregistrrilor noi ntr-un tabel de date Numrul de nregistrri dintr-o baz de date, furnizat de funcia RECCOUNT(), poate fi modificat, prin introducerea unor nregistrri vide (adugri, inserri): APPEND BLANK sau INSERT BLANK [BEFORE] Inserarea se execut implicit dup nregistrarea curent, dac nu se folosete opiunea BEFORE, iar urmtoarele nregistrri sunt translatate spre sfritul tabelului de date i renumerotate. tergerea nregistrrilor dintr-un tabel Eliminarea unor nregistrri din tabelele de date se efectueaz la nivel logic sau fizic prin utilizarea comenzilor DELETE, RECALL, PACK, ZAP. a) tergerea logic (marcare pentru tergere). Prin marcarea pentru tergere nregistrrile din tabelele de date nu sunt eliminate comanda: DELETE [] [FOR ] [WHILE ] Aceast comand (precum i altele) folosete clauza FOR pentru selectarea tuturor nregistrrilor care corespund condiiei logice . Clauza WHILE ntrerupe testarea nregistrrilor cnd gsete o nregistrare ce nu respect condiia dat, . Accesul la nregistrrile marcate pentru tergere este controlat de comanda: SET DELETED ON OFF definitiv. Pentru tergerea logic este utilizat

Baze de date n Visual FoxPro

9

Cnd se alege opiunea ON, nregistrrile marcate pentru tergere nu vor fi accesibile celorlalte comenzi, iar cnd se selecteaz opiunea OFF, nregistrrile sunt accesibile indiferent de marcajul de tergere (starea implicit este OFF). Aceast comand este util atunci cnd se lucreaz pe grupuri de nregistrri. b) Demarcarea tergerii logice. Marcajele de tergere logic pot fi anulate prin folosirea comenzii: RECALL [] [FOR ] [WHILE ] c) tergerea fizic. Prin folosirea acestui tip de tergere nregistrrile sunt eliminate definitiv din tabelul de date (tergerile fizice nu mai pot fi refcute). tergerile fizice au efect asupra nregistrrilor marcate logic sau asupra tuturor nregistrrilor din tabelul de date prelucrat prin utilizarea uneia din comenzile: PACK sau ZAP Modificarea coninutului nregistrrilor Modificarea coninutului nregistrrilor dintr-un tabel de date presupune nlocuirea valorilor din unul sau mai multe cmpuri cu altele noi. Comanda REPLACE permite actualizarea tabelelor de date cu valori precizate n comand i are urmtoarea sintax: REPLACE WITH [, WITH ...] [] [FOR ] [WHILE ] REPLACE nlocuiete vechea valoare din cmpul cu valoarea expresiei , valoarea din cmpul cu i aa mai departe.

10

Baze de date n Visual FoxPro

Exemple:use personal ?reccount() 25 append blank ?reccount() 26 goto 7 insert blank before ?recno() 7 dele next 3 skip -1 recall pack ?reccount() 24 replace for nume=ALEX nume with ALEXANDRU

Fereastra BROWSE Principala comand, pentru realizarea diferitelor operaiuni

asupra tabelelor de date, prin deschiderea unei fere