1 CREAREA ŞI GESTIUNEA BAZELOR DE DATE ÎN VISUAL FOXPRO O bază de date în Visual FoxPro are ataşat un fişier special, cu structură de tabel, cu extensia .DBC (DataBase Container) în care sunt memorate printre altele structurile tabelelor componente, relaţiile permanente dintre tabelele bazei de date, caracteristici suplimentare ale tabelelor din baza de date, caracteristici ale bazei de date în ansamblul ei şi proceduri care urmează a fi executate la apariţia unor evenimente. Fişierul .DBC este un container care nu conţine deci fizic tabelele componente sau câmpuri ale acestora, ci memorează pointerii (marcatori), căile de acces la fişierele asociate tabelelor, precum şi celelalte informaţii despre tabele, restricţii de integritate, proceduri stocate, etc. Mai exact, pentru tabele, DBC, conţine o serie de elemente, cum ar fi: nume lungi pentru tabele şi câmpuri (în versiunile xBase acestea erau limitate la 10 caractere), clauze pentru validări la nivel de înregistrare şi câmpuri, valori prestabilite pentru unele câmpuri, denumiri noi pentru câmpuri, declanşatori pentru actualizarea înregistrărilor, relaţii persistente între tabele, respectiv integritate referenţială. Deci, o bază de date astfel definită permite controlul integrităţii datelor implicate în relaţii. Baza de date asigură legarea, din punct de vedere conceptual, a tabelelor, care conţin date referitoare la un domeniu, cu respectarea granularităţii. De exemplu, vom introduce într-o bază de date tabele conţinând date referitoare la vânzarea produselor unei firme sau tabele referitoare la activitatea de personal. De regulă, însă, vom evita amestecarea acestor două categorii de tabele în aceeaşi bază de date. Construirea unei baze de date în Visual FoxPro se realizează în următoarele etape: 1. crearea bazei de date; 2. încorporarea în noua bază de date a tabelelor simple anterior create şi construirea noilor tabele ce vor fi încorporate direct în baza de date; 3. specificarea pentru tabelele simple incluse în baze de date a unor caracteristici ce nu se puteau declara în momentul construirii lor, ca tabele izolate; 4. stabilirea legăturilor permanente între tabelele bazei de date; 5. precizarea unor caracteristici ale noii baze de date; 6. includerea în baza de date a unor vederi, conexiuni cu date externe etc. 1.Crearea bazei de date Crearea fişierului bazei de date se poate realiza, conform metodologiei creării unor obiecte noi, în unul din următoarele moduri: a) prin folosirea constructorului de baze de date (Database Designer) apelat din meniul sistem; b) prin folosirea ferestrei PROJECT MANAGER; c) prin folosirea comenzii CREATE. a) Crearea bazei de date prin folosirea constructorului de baze de date In acest caz, din meniul FILE se selectează opţiunea NEW, având ca efect afişarea pe ecran a chenarului cu acelaşi nume. Afişarea chenarului New se poate realiza şi direct prin efectuarea unui clic pe prima pictogramă New, din bara de instrumente standard, sau prin utilizarea combinaţiei de taste Ctrl+N.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
CREAREA ŞI GESTIUNEA BAZELOR DE DATE
ÎN VISUAL FOXPRO
O bază de date în Visual FoxPro are ataşat un fişier special, cu structură de tabel, cu extensia
.DBC (DataBase Container) în care sunt memorate printre altele structurile tabelelor componente,
relaţiile permanente dintre tabelele bazei de date, caracteristici suplimentare ale tabelelor din baza de
date, caracteristici ale bazei de date în ansamblul ei şi proceduri care urmează a fi executate la apariţia
unor evenimente.
Fişierul .DBC este un container care nu conţine deci fizic tabelele componente sau câmpuri ale
acestora, ci memorează pointerii (marcatori), căile de acces la fişierele asociate tabelelor, precum şi
celelalte informaţii despre tabele, restricţii de integritate, proceduri stocate, etc. Mai exact, pentru
tabele, DBC, conţine o serie de elemente, cum ar fi: nume lungi pentru tabele şi câmpuri (în versiunile
xBase acestea erau limitate la 10 caractere), clauze pentru validări la nivel de înregistrare şi câmpuri,
valori prestabilite pentru unele câmpuri, denumiri noi pentru câmpuri, declanşatori pentru actualizarea
înregistrărilor, relaţii persistente între tabele, respectiv integritate referenţială. Deci, o bază de date
astfel definită permite controlul integrităţii datelor implicate în relaţii.
Baza de date asigură legarea, din punct de vedere conceptual, a tabelelor, care conţin date
referitoare la un domeniu, cu respectarea granularităţii. De exemplu, vom introduce într-o bază de date
tabele conţinând date referitoare la vânzarea produselor unei firme sau tabele referitoare la activitatea
de personal. De regulă, însă, vom evita amestecarea acestor două categorii de tabele în aceeaşi bază de
date.
Construirea unei baze de date în Visual FoxPro se realizează în următoarele etape:
1. crearea bazei de date;
2. încorporarea în noua bază de date a tabelelor simple anterior create şi construirea noilor
tabele ce vor fi încorporate direct în baza de date;
3. specificarea pentru tabelele simple incluse în baze de date a unor caracteristici ce nu se
puteau declara în momentul construirii lor, ca tabele izolate;
4. stabilirea legăturilor permanente între tabelele bazei de date;
5. precizarea unor caracteristici ale noii baze de date;
6. includerea în baza de date a unor vederi, conexiuni cu date externe etc.
1.Crearea bazei de date
Crearea fişierului bazei de date se poate realiza, conform metodologiei creării unor obiecte noi,
în unul din următoarele moduri:
a) prin folosirea constructorului de baze de date (Database Designer) apelat din meniul
sistem;
b) prin folosirea ferestrei PROJECT MANAGER;
c) prin folosirea comenzii CREATE.
a) Crearea bazei de date prin folosirea constructorului de baze de date
In acest caz, din meniul FILE se selectează opţiunea NEW, având ca efect afişarea pe ecran a
chenarului cu acelaşi nume. Afişarea chenarului New se poate realiza şi direct prin efectuarea unui clic
pe prima pictogramă New, din bara de instrumente standard, sau prin utilizarea combinaţiei de taste
Ctrl+N.
2
Din chenarul New se va selecta butonul radio Database şi apoi opţiunea New File. Ca urmare a
selectării acestei opţiuni, pe ecran va fi afişată fereastra CREATE în care se cere introducerea numelui
pentru baza de date şi directorul în care se memorează noua bază de date. După completarea acestor
informaţii, prin acţionarea butonului Save pe ecran apare fereastra constructorului bazei de date
Database Designer). In acelaşi timp, la meniul sistem se adaugă opţiunea Database, care conţine
diferite opţiuni pentru operaţii cu baze de date.
Deocamdată baza de date nou creată este vidă şi este deschisă în fereastra Database Designer.
In fereastra Database Designer vom popula noua bază de date cu tabele folosind opţiuni din
meniul contextual (obţinut prin clic cu butonul drept al mouse-ului), opţiuni din bara cu instrumente
aferentă ferestrei Database Designer sau opţiuni din meniul Database. Aşa după cum s-a amintit,
tabelele introduse în baza de date pot fi tabele existente (libere) sau create în momentul respectiv.
Pentru a afişa bara de instrumente aferentă ferestrei Database Designer, dacă nu este afişată, se
va selecta din meniul principal opţiunea View şi apoi din submeniul aferent, opţiunea Toolbars. Se va
face apoi un clic pe chenarul de selecţie corespunzător Database Designer şi apoi pe butonul OK care
va determina afişarea pe ecran a barei de instrumente aferente.
După crearea bazei de date şi eventual popularea ei cu tabele, fereastra Database Designer se închide
prin efectuarea unui clic pe butonul de închidere . Ca urmare, toate informaţiile sunt salvate în noua
bază de date.
3
b) Crearea bazei de date prin comenzi
Pentru crearea bazei de date prin comenzi se foloseşte comanda CREATE cu sintaxa:
CREATE DATABASE [ <nume-baza-date>|? ]
La execuţia acestei comenzi are loc crearea unei baze de date şi deschiderea acesteia în zona
curentă. Semnificaţia opţiunilor din cadrul comenzii este următoarea:
- <nume bază date> - specifică un nume pentru baza de date ce urmează a fi creată
- ? - afişează caseta de dialog CREATE
- dacă nu se specifică nici <nume-bază-de-date> şi nici ? efectul este identic cu utilizarea ?,
adică se afişează chenarul CREATE şi se continuă ca în cazul a).
Noua bază este deschisă exclusiv dacă s-a utilizat în prealabil comanda SET EXCLUSIVE.
Exemplu: CREATE DATABASE PERSONAL
are ca efect crearea şi deschiderea în mod exclusiv a bazei de date PERSONAL, care poate fi
eventual vidă.
Observaţie. O bază de date creată cu DATABASE DESIGNER sau comanda CREATE poate fi vizualizată
prin adăugarea ei într-un proiect, prin acţionarea butonului ADD… din fereastra Project
Manager, care determină afişarea ferestrei OPEN cu bazele de date existente.
Alte operaţii referitoare la bazele de date
De asemenea, La introducerea comenzii OPEN DATABASES în fereastra de comandă apare
fereastra OPEN cu bazele de date existente, de unde se poate selecta baza de date ce urmează a fi
deschisă.
1. Afişarea ferestrei Database Designer se poate realiza şi cu ajutorul comenzii:
2. Dacă baza de date selectată şi deschisă în fereastra Database Designer conţine tabele,
acestea apar afişate în cadrul ferestrei respective sub forma unor mici dreptunghiuri care
includ câmpurile din structura tabelului. Aceste dreptunghiuri au caracteristicile unei
ferestre WINDOWS, deci pot fi redimensionate sau mutate, de asemenea cu butonul din
dreapta al mouse-ului se obţine un meniu contextual aferent tabelelor, pentru a efectua
diferite operaţii cu tabela respectivă.
3. Pentru a obţine informaţii despre baza de date curentă putem folosi comanda:
Comanda permite afişarea numelui, a căii de acces şi a versiunii a bazei de date, precum şi
informaţii referitoare la tabelele conţinute în baza de date, adică numele acestora şi ale
câmpurilor aferente.
MODIFY DATABASE <nume-bază-date>
DISPLAY DATABASES
4
Ştergerea fizică a bazei de date permite mediului Visual FoxPro să elimine legăturile înapoi
către baza de date ştearsă din tabelele care au aparţinut bazei de date. Tabelele aferente unei baze de
date şterse fizic nu vor fi şterse de pe disc, ele rămânând tabele libere.
Pentru ştergerea fizică a unei baze de date se poate utiliza comanda DELETE DATABASES
cu următoarea sintaxă:
Opţiunile <nume-bază de date> şi ? au aceeaşi semnificaţie ca şi la comanda CREATE
DATABASES.
Opţiunea DELETE TABLES şterge împreună cu baza de date şi tabelele aferente acesteia.
Opţiunea RECYCLE nu şterge imediat baza de date de pe disc, ci o plasează în Windows
Recycle Bin.
Exemplu: DELETE DATABASES STUDENT DELETE TABLES
Comanda va determina ştergerea de pe disc a bazei de date STUDENT şi a tabelelor aferente
acesteia.
2.Deschiderea şi închiderea bazelor de date
Deschiderea bazelor de date
Se poate realiza prin utilizarea comenzii USE cu simbolul "!", care are sintaxa:
Prin deschiderea unei noi baze de date nu are loc închiderea bazelor de date anterior deschise.
Acestea rămân în continuare deschise, iar ultima bază de date deschisă devine baza de date curentă,
numele ei fiind afişat în caseta de pe bara de instrumente standard a ferestrei Visual FoxPro.
Pentru deschiderea unei baze de date se poate folosi comanda OPEN în formatul:
Semnificaţia opţiunilor din cadrul comenzii este următoarea:
- <nume- bază de date> - precizează numele bazei de date ce urmează a fi deschisă, la care
Visual Fox Pro adaugă automat extensia .DBC; dacă în locul numelui bazei de date se
foloseşte caracterul ? sau nu se specifică acest argument, pe ecran se va afişa caseta de
dialog OPEN din care se selectează baza de date care urmează a fi deschisă;
- EXCLUSIVE - permite deschiderea bazei de date în modul exclusiv. Ca urmare un alt
utilizator nu mai poate avea acces în acelaşi timp la baza de date respectivă, cât timp aceasta
este deschisă ;
- SHARED - deschide baza de date în mod partajat, astfel că şi alţi utilizatori pot avea acces
în acelaşi timp la baza de date respectivă. Modurile de lucru exclusive sau shared se exclud
reciproc şi se pot stabili şi printr-o comandă SET;
- NOUPDATE - indică faptul că nu se pot face modificări în baza de date, adică aceasta va fi
deschisă în modul read-only. Dacă se omite această opţiune, baza de date este deschisă în
DELETE DATABASES [<nume – bază de date>| ?][DELETETABLES] [RECYCLE]
USE <nume-bază-date>!<nume_tabel>
OPEN DATABASE [<nume-baza-date>|?][EXCLUSIVE][SHARED]
[NOUPDATE] [VALIDATE]
5
modul read-write. Tabelele din baza de date nu sunt afectate de opţiunea NOUPDATE.
Pentru a evita o modificare într-o tabelă din baza de date se va folosi în comanda de
deschidere a tabelei respective opţiunea NOUPDATE.
- VALIDATE - permite validarea referinţelor din baza de date, adică, dacă referinţele
tabelelor la baza de date din care fac parte există în tabelele respective.
Observaţii.
1. cât timp baza de date este deschisă, toate tabelele conţinute în baza respectivă sunt
accesibile, cu unele excepţii, în care tabelele trebuie deschise cu comanda USE ;
2. după deschiderea uneia sau a mai multor baze de date, toate obiectele sau tabelele adăugate
devin implicit componente ale bazei de date curente. Pentru a afişa numele bazei de date
curente se poate folosi funcţia DBC( ), iar pentru schimbarea bazei de date curente se va
folosi comanda:
3. pentru a obţine numele şi calea pentru toate bazele de date deschise se poate folosi funcţia
ADATABASES(<nume-masiv> ). Aceasta creează un masiv bidimensional, prima
dimensiune reprezentând numele bazei de date, iar a doua dimensiune, calea de acces.
Funcţia returnează valoarea numărului bazelor de date descrise, deci 0 dacă nu este
deschisă nici o bază de date.
4. baza de date curentă se mai poate stabili şi prin selectarea unei baze de date din lista
derulantă care conţine bazele de date deschise, de pe bara cu instrumente standard.
5. Visual FoxPro poate deschide automat o bază de date la execuţia unei cereri (Query) sau a
unei forme (Form).
Exemplu:
OPEN DATABASE BAZA1
OPEN DATABASE BAZA2
?DBC( )
SET DATABASE TO BAZA1
? DBC( )
? DATABASES(A2)
DISP MEMORY LIKE A2
Accesul la tabelele unei baze de date
Pentru selectarea unei tabele din baza de date curentă se poate folosi:
- fereastra Database Designer
- fereastra Project Manager
- comanda USE cu semnul "?".
USE? are ca efect deschiderea casetei de dialog USE din care se poate selecta tabela ce
urmează a fi deschisă.
SET DATABASE TO <nume-baza-date>
6
Acelaşi efect se obţine prin utilizarea comenzii USE în formatul:
Inchiderea unei baze de date
Pentru închiderea bazei de date curente şi a tabelelor aferente se poate folosi comanda:
Exemplu:
SET DATABASE TO PERSONAL
CLOSE DATABASE
Pentru a închide toate obiectele deschise la un moment dat se utilizează comanda CLOSE
ALL.
Observaţii.
1. La închiderea unei baze de date selectate din fereastra Project Manager, după operaţia de
închidere se ascund toate nivelele inferioare aferente, iar în faţa bazei de date se afişează
pictograma +.
2. Comanda CLOSE DATABASE nu închide baza de date deschisă în fereastra Project
Manager apare pictograma Θ sau dacă baza de date este deschisă de un formular care
rulează.
USE <nume-bază-date>!<nume_tabel>
CLOSE DATABASE
CLOSE ALL
7
3.Caracteristici noi ale tabelelor din baza de date
Tabelele asociate unei baze de date prezintă o serie de facilităţi comparativ cu tabelele libere,
neasociate la nici o bază de date, cum ar fi:
- stabilirea unor reguli de validare la nivel de câmp şi înregistrare.
- definirea unor formate de introducere şi afişare a datelor dintr-o tabelă.
- adăugarea unor comentarii pentru orice câmp al unei tabele.
- setarea unor valori implicite pentru un câmp al tabelei.
- definirea de nume lungi pentru tabele şi câmpuri.
- stabilirea unor titluri pentru câmpurile unei tabele.
Aceste facilităţi pot fi puse în aplicare încă de la crearea structurii unei tabele, unde pentru
fiecare câmp putem preciza anumite reguli de validare, valori implicite sau anumite formate în cazul
afişării datelor respective într-o fereastră Browse sau într-un raport.
Stabilirea unui titlu pentru câmp
La afişarea conţinutului unei tabele într-o fereastră Browse, în mod implicit coloanele tabelei
conţin ca şi titlu denumirea câmpurilor din structura acesteia. Acestea, reprezintă în majoritatea
cazurilor, prescurtări de denumiri şi prin urmare sunt mai greu de înţeles la afişarea tabelei.
Pentru a înlătura acest fapt, Visual FoxPro permite stabilirea pentru fiecare câmp din structura
unui tabel a unor titluri sau etichete descriptive care vor apare ca şi antet în coloanele unei ferestre
Browse sau în cadrul unui raport.
In acest scop în caseta Caption din fereastra Table Designer se introduce titlul aferent câmpului
selectat şi se acţionează butonul OK. Ca efect, la afişarea tabelei într-o fereastră Browse în coloana
aferentă câmpului respectiv va apare textul introdus în caseta Caption în locul numelui de câmp din
structura tabelei.
Exemplu: pentru câmpul CODP din tabela PRODUSE se stabileşte ca şi titlu textul: CODUL
PRODUSULUI.
Adăugarea unui comentariu la câmp
Pentru fiecare câmp din structura unui fişier putem adăuga un comentariu care poate include
anumite informaţii despre câmpul respectiv cum ar fi: semnificaţia acestuia, ce date va putea conţine,
ce alte facilităţi au fost stabilite pentru câmpul respectiv, etc. Textul din cadrul comentariu poate fi cât
de lung, deoarece acesta este memorat într-un câmp de tip memo.
Textul respectiv se afişează în fereastra Table Designer; nu se modifică în zona Description la
selectarea câmpului din tabelă. El serveşte pentru a înţelege modul de concepere şi proiectare a
câmpului respectiv.
In scopul introducerii unui comentariu pentru un câmp dintr-o tabelă a bazei de date, se
deschide fereastra Table Design şi se introduce comentariu în caseta Field Comment, după care se
acţionează butonul OK.
Un comentariu poate fi introdus şi cu funcţia DBSETPROP( ).
Exemplu: se introduce un comentariu pentru câmpul CODP din fişierul PRODUSE. Afişarea
comentariului se realizează cu funcţia DBGETPROP ().