Documente Academic
Documente Profesional
Documente Cultură
În Visual FoxPro pot fi folosite două metode pentru crearea unei baze de
date. Aceste metode creează două tipuri de baze de date:
Temporare. Ele sunt create prin metoda clasică (metoda folosită în
variantele anterioare de FoxPro și care s-a păstrat și în Visual FoxPro
pentru compatibilitate cu versiunile anterioare). Tabelele bazei de date
sunt permanente și se memorează în fișiere .dbf. Baza de date nu este
însă permanentă.
1
Crearea bazei de date
Crearea bazei de date care cuprinde următoarele operații:
crearea unui fișier nou bază de date;
2
Crearea bazei de date
1. Interactiv:
Alegeți opțiunea New din meniul File și în caseta
de dialog New activați butonul radio Database
2.Prin comanda:
create database <nume_bază_de_date>
3
Adăugarea la baza de date a tabelelor libere
1. Interactiv:
Fie folosind opțiunea Add Table din meniul
Database, fie executând clic pe butonul Add
Table din bara de instrumente Database
Designer.
2. Prin comanda:
add table <nume_tabel>
4
Adăugarea la baza de date a tabelelor noi
2. Prin comanda:
create <nume_tabel>
5
Obținerea informațiilor despre baza de date
deschisă
6
Deschiderea și închiderea unei BD
Pentru a activa o bază de date folosiți comanda:
set database to <nume_bază de date>
7
Deschiderea și închiderea tabelelor
Deschiderea unui tabel într-o zonă de lucru se face cu
comanda:
use <nume_tabel> in <zona> [alias <nume_alias>] [again]
8
Selectarea unei zone de lucru
O zonă de lucru este o zonă de memorie care se asociază
unui tabel la deschiderea lui. Pot fi folosite peste 30.000
de zone de lucru. În zona de lucru se păstrează
informații despre tabelul deschis în acea zonă cum ar
fi:
identificatorul fișierului în care este memorat tabelul,
structura fișierului,
numărul de înregistrări din fișier,
contorul înregistrării curente etc.
9
Operaţii cu datele dintr-un tabel al bazei de date
10
Exploatarea unui tabel se poate face:
Secvențial, adică în ordinea fizică a
înregistrărilor (ordinea în care au fost scrise în
tabel).
În acces direct, adică în ordinea logică a
înregistrărilor (ordinea dată de valoarea
crescătoare sau descrescătoare a unui câmp din
tabel). Pentru a avea acces direct, înregistrările
din tabel trebuie ordonate logic.
11
Crearea tabelului
Un tabel poate fi creat în interiorul unei baze de date ca
tabel al bazei de date sau în afara ei ca tabel liber.
12
Indecșii pot fi:
Primary - cheia primară. Se poate folosi numai în cazul în care
tabelul se găsește într-o bază de date. Numai un singur index poate
fi folosit pentru cheia primară.
Candidate - cheia candidat. Este o cheie care poate deveni cheie
primară deoarece nu conține valori duplicate și nici valori nule. Și
ea este utilă numai în baza de date.
Unique - cheia unică. Este o cheie care se consideră că nu conține
valori duplicate. Dacă există două înregistrări cu aceeași valoare a
cheii unice, va fi vizibilă logic numai prima dintre ele, chiar dacă
fizic există amândouă.
Regular - cheia obișnuită.
13
Crearea structurii unui tabel
Se poate face prin mai multe metode:
1. Prin definirea structurii:
interactiv - structura se definește prin intermediul controalelor din fereastra
document a generatorului de tabele Table Designer; deschiderea ferestrei se
poate face fie prin intermediul opțiunii de meniu New din meniul File,
prin intermediul comenzii:
create <nume_tabel>
14
Manipularea câmpurilor dintr-un tabel
Câmpurile dintr-un tabel pot fi manipulate și controlate prin
intermediul comenzilor Set și al funcțiilor.
1. Prin intermediul comenzilor set se poate controla accesul la
câmpuri:
Controlul accesului la câmpuri poate fi activat (on) sau inhibat (off)
cu comanda:
15
Funcții
2. Prin intermediul funcțiilor se pot obține informații despre câmpuri:
16
Domeniul înregistrărilor
Clauza <domeniu > se va înlocui cu una din următoarele construcţii , în
funcţie de necesităţi:
ALL - selectează toate înregistrările din B.D.
NEXT <expN> - se referă la următoarele <expN> înregistrări începând
de la cea curentă, inclusiv.
RECORD <expN> - acţionează numai asupra înregistrării cu numărul
<expN>.
REST - selectează înregistrările începând cu cea curentă şi până la
sfârşit.
17
Adăugarea de noi înregistrări
Se poate face:
1. Prin adăugare la sfârșitul tabelului:
de la tastatură - se realizează fie prin intermediul opțiunii de meniu
Append New Records din meniul Table
prin adăugarea unei înregistrări vide - se realizează prin intermediul
comenzii:
APPEND BLANK
dintr-un alt tabel - se realizează fie prin intermediul opțiunii de meniu
Append Records...din meniul Table, fie prin intermediul comenzii:
18
Modificarea conţinutului unei tabele de date
19
Ștergerea înregistrărilor
Se poate face prin următoarele operații:
Ștergerea logică. Operația de ștergere logică nu înseamnă
eliminarea fizică a înregistrărilor din tabel, ci numai
marcarea lor pentru ștergere.
delete [<domeniu>] [for <cond_1>] [while <cond_2>]
Ștergerea fizică. Operația de ștergere fizică înseamnă
eliminarea fizică din tabel a înregistrărilor marcate logic
pentru ștergere.
pack
20
Comanda care stabilește cum pot fi folosite
înregistrările șterse logic:
set deleted on | off
unde on înseamnă că înregistrările șterse logic nu pot fi
folosite de comenzile care au în sintaxă clauzele for și
while.
Refacerea înregistrărilor șterse logic. Operația înlătură
marcajele pentru ștergere logică.
21
Vizualizarea conţinutului unei tabele de date
22
Indicatorul de înregistrări
Aflarea înregistrării curente dintr-o tabelă de date, deci a
conţinutului indicatorului de înregistrări se face folosind
funcţia RECNO( ) cu următoarea sintaxă:
RECNO ( [< expN > | < expC >])
23
Un alt tip de deplasare a indicatorului de înregistrări,
este realizat cu ajutorul comenzii SKIP
SKIP [ < expN1 > || < expN2 > || < expC > ]
Comanda locate poziționează pointerul de înregistrare pe o
înregistrare care îndeplinește condiția specificată. Sintaxa
comenzii este:
locate for <cond_1> [<domeniu>] [while <cond_2>]
Comanda continue continuă procesul de căutare definit de
ultima comandă locate (caută următoarea înregistrare care
îndeplinește criteriul de căutare precizat în comanda
locate).
24
Exemplu
USE
GOTO 2
? RECNO ( )
GO RECORD RECNO()+1
&& poziţionare pe înregistrarea următoare
DISPLAY NEXT 1
GO TOP && poziţionare pe înregistrarea 1
? RECNO ( )
GO BOTTOM && poziţionare pe ultima înregistrarea
USE
25
Controlarea poziționării în tabel
Prin intermediul funcțiilor se pot obține informații despre înregistrările din
tabel:
numărul de înregistrări din tabel se obține cu funcția reccount();
26