Sunteți pe pagina 1din 26

Operaţii cu datele dintr-o bază de date

Î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ă.

Permanente. Ele sunt create prin metoda containerului, în care baza de


date este o entitate permanentă. Tabelele sunt păstrate în continuare în
fișiere cu extensia .dbf. Baza de date este însă definită ca un container
care va conține: lista tabelelor componente, relațiile dintre tabele și alte
date necesare regăsirii informațiilor.

1
Crearea bazei de date
Crearea bazei de date care cuprinde următoarele operații:
 crearea unui fișier nou bază de date;

 adăugarea pe rând la baza de date a tabelelor libere create anterior;

 construirea unor noi tabele direct în baza de date;

 precizarea, pentru tabelele libere create anterior, a proprietăților care


nu au putut fi definite la crearea lor: etichetele câmpurilor, valorile
implicite ale câmpurilor, regulile de validare la nivel de câmp și la
nivel de înregistrare, mesajele de eroare pentru regulile de validare.
 stabilirea legăturilor între tabele;

 stabilirea proprietăților bazei de date;

 încorporarea în baza de date a unor entități specifice pentru


exploatarea ei: vizualizări, conexiuni (care asigură accesul la datele
create cu alte sisteme), proceduri și funcții care pot fi folosite atunci
când se exploatează tabelele bazei de date.

2
Crearea bazei de date

Baza de date poate fi creată prin următoarele


metode:

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

Pot fi adăugate tabele noi la baza de date prin


următoarele metode:
1. Interactiv:
Fie folosind opțiunea New Table din meniul
Database, fie executați clic pe butonul New
Table din bara de instrumente Database
Designer.

2. Prin comanda:
create <nume_tabel>
5
Obținerea informațiilor despre baza de date
deschisă

Afișarea numelui bazei de date, identificatorul căii


de director în care se găsește fișierul,versiunea și
lista tabelelor împreună cu câmpurile lor se
realizează cu comenzile:

list | display databases

Verificați integritatea bazei de date cu comanda:


validate databases

6
Deschiderea și închiderea unei BD
Pentru a activa o bază de date folosiți comanda:
set database to <nume_bază de date>

Deschiderea unei baze de date se face prin comanda:


open database <nume_bază_de_date>
Închiderea bazei de date se face cu comanda:
close databases
close all databases - se vor închide toate
bazele de date deschise

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]

Schimbarea zonei de lucru curente se face cu comanda:


select <zona>

Închiderea unui tabel se face cu comanda:


use [in <zona>]

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

Exploatarea unui tabel constă în:


 Operații de actualizare cum sunt cele de
adăugare a unei noi înregistrări, de ștergere a
unei înregistrări sau de modificare a valorii
unor câmpuri din înregistrări.
 Operații de consultare (interogare) prin care se
pot obține informații din tabel.

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.

Crearea unui tabel se face în două etape:


 crearea structurii tabelului,
 introducerea datelor în tabel, conform structurii
definite.

La definirea structurii tabelului poate fi definit și indexul structural


compus. Acest index se numește compus¸ deoarece poate conține
mai multe chei de indexare numite etichete index (tag). Extensia sa
este .cdx.

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>

 folosind limbajul de comandă - structura se definește prin


intermediul adverbelor din comanda SQL:
create table <nume_tabel> (<nume_câmp1> <tip1> (<lăȚime1>
[,<poz_zec1>] [<nume_câmp2> <tip2> (<lățime2> ,<poz_zec2>]...]

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:

SET FIELDS ON | OFF. Valoarea implicită este OFF.

Se pot preciza câmpurile la care poate avea acces utilizatorul cu


comanda:
SET FIELDS TO [ [ <câmp1> [< câmp2 >...] ] | ALL ]

15
Funcții
2. Prin intermediul funcțiilor se pot obține informații despre câmpuri:

 Numărul câmpurilor dintr-o tabelă de date este returnat de


funcţia FCOUNT( ),
 Funcţia FIELD( ) returnează numele unui câmp dintr-o tabelă de
date identificat prin numărul câmpului în cadrul structurii tabelei
de date.
 Funcţia care returnează mărimea unui câmp al unei tabele de
date, specificat prin numele său este funcţia FSIZE ().

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.

Clauza FOR<expL> - se foloseşte pentru selectarea înregistrărilor în funcţie


de o condiţie logică <expL>. Se selectează acele înregistrări pentru care
<expL> este adevărată.
Clauza WHILE < expL > - selectează înregistrările în funcţie de <expL>,
pentru valoarea adevărată a acesteia.

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:

APPEND FROM <nume_tabel> [fields <listă_câmpuri>] [for <cond>]

2. Prin inserarea în interiorul tabelului. Operația se realizează prin comanda:


INSERT [before] [blank]

18
Modificarea conţinutului unei tabele de date

Modificarea valorii câmpurilor din înregistrări se poate


face:
 prin valori precizate: Se poate folosi comanda replace
care are sintaxa:
replace <câmp_1> with <expr_1> [additive] [,<câmp_2>
with <expr_2>[additive]...] [<domeniu>] [for
<cond_1>]
[while <cond_2>]
 interactiv, de la tastatură: Se pot folosi comenzile edit
sau browse care deschid fereastra de editare.

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ă.

recall [<domeniu>] [for <cond_1>] [while <cond_2>]

21
Vizualizarea conţinutului unei tabele de date

Se pot folosi comenzile list sau display . Sintaxa lor este:

list | display [ [fields] <listă_câmpuri>]


[<domeniu>] [for <cond_1>] [while <cond_2>]
[to printer | to file <nume_fișier>] [noconsole] [off]

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 >])

 Comanda GO sau GOTO, poziţionează indicatorul de


înregistrări pe o anumită înregistrare dintr-o bază de date.
Sintaxa comenzii este următoarea:
GO | GOTO [ RECORD ] < expN1 > [IN < expN2 > | < expC >]
GO | GOTO TOP | BOTTOM [ IN < expN2 > | < 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();

 numărul înregistrării curente din tabel se obține cu funcția recno();

 sfârșitul de fișier eof() – funcția furnizează un rezultat logic care este


.T. dacă pointerul este poziționat pe ultima înregistrare din tabel;

 începutul de fișier bof() – funcția furnizează un rezultat logic care este


.T. dacă pointerul este poziționat pe prima înregistrare din tabel;
 modul în care a decurs căutarea found() – funcția furnizează un
rezultat logic care este .T. dacă a avut succes operația de căutare.

26

S-ar putea să vă placă și

  • Test de Evaluare Pba
    Test de Evaluare Pba
    Document2 pagini
    Test de Evaluare Pba
    torjocf
    Încă nu există evaluări
  • Calculatorul
    Calculatorul
    Document10 pagini
    Calculatorul
    torjocf
    Încă nu există evaluări
  • Lucrarea 12
    Lucrarea 12
    Document1 pagină
    Lucrarea 12
    torjocf
    Încă nu există evaluări
  • Curs 7
    Curs 7
    Document46 pagini
    Curs 7
    torjocf
    Încă nu există evaluări
  • Subiecte Examen Asdn 2-1
    Subiecte Examen Asdn 2-1
    Document6 pagini
    Subiecte Examen Asdn 2-1
    torjocf
    Încă nu există evaluări
  • Lucrarea 11
    Lucrarea 11
    Document1 pagină
    Lucrarea 11
    torjocf
    Încă nu există evaluări
  • Lucrarea 09
    Lucrarea 09
    Document3 pagini
    Lucrarea 09
    torjocf
    Încă nu există evaluări
  • Lucrarea 10
    Lucrarea 10
    Document4 pagini
    Lucrarea 10
    torjocf
    Încă nu există evaluări
  • Lucrarea 09
    Lucrarea 09
    Document3 pagini
    Lucrarea 09
    torjocf
    Încă nu există evaluări
  • Laborator PCIII
    Laborator PCIII
    Document90 pagini
    Laborator PCIII
    OviDiu
    Încă nu există evaluări
  • Lucrarea 11
    Lucrarea 11
    Document1 pagină
    Lucrarea 11
    torjocf
    Încă nu există evaluări
  • Lucrarea 12
    Lucrarea 12
    Document1 pagină
    Lucrarea 12
    torjocf
    Încă nu există evaluări
  • PCIII Liste Cozi Stive 97 2003
    PCIII Liste Cozi Stive 97 2003
    Document22 pagini
    PCIII Liste Cozi Stive 97 2003
    torjocf
    Încă nu există evaluări
  • Lucrarea 2
    Lucrarea 2
    Document4 pagini
    Lucrarea 2
    torjocf
    Încă nu există evaluări
  • Lucrarea 10
    Lucrarea 10
    Document4 pagini
    Lucrarea 10
    torjocf
    Încă nu există evaluări
  • Lucrarea 3
    Lucrarea 3
    Document3 pagini
    Lucrarea 3
    torjocf
    Încă nu există evaluări
  • Lucrarea 3
    Lucrarea 3
    Document3 pagini
    Lucrarea 3
    torjocf
    Încă nu există evaluări
  • Lucrarea 1
    Lucrarea 1
    Document3 pagini
    Lucrarea 1
    torjocf
    Încă nu există evaluări
  • 11BDI
    11BDI
    Document35 pagini
    11BDI
    torjocf
    Încă nu există evaluări
  • Curs 5
    Curs 5
    Document35 pagini
    Curs 5
    torjocf
    Încă nu există evaluări
  • Fituica So2
    Fituica So2
    Document2 pagini
    Fituica So2
    torjocf
    Încă nu există evaluări
  • Curs 6 - 7
    Curs 6 - 7
    Document42 pagini
    Curs 6 - 7
    torjocf
    Încă nu există evaluări
  • Lucrarea 5
    Lucrarea 5
    Document3 pagini
    Lucrarea 5
    torjocf
    Încă nu există evaluări
  • Lucrarea 4
    Lucrarea 4
    Document3 pagini
    Lucrarea 4
    torjocf
    Încă nu există evaluări
  • Lucrarea 2
    Lucrarea 2
    Document4 pagini
    Lucrarea 2
    torjocf
    Încă nu există evaluări
  • Lucrarea 1
    Lucrarea 1
    Document3 pagini
    Lucrarea 1
    torjocf
    Încă nu există evaluări
  • Curs 8 - 9
    Curs 8 - 9
    Document58 pagini
    Curs 8 - 9
    torjocf
    Încă nu există evaluări
  • Curs 4
    Curs 4
    Document41 pagini
    Curs 4
    torjocf
    Încă nu există evaluări
  • Curs 7
    Curs 7
    Document46 pagini
    Curs 7
    torjocf
    Încă nu există evaluări
  • 07BDI
    07BDI
    Document47 pagini
    07BDI
    torjocf
    Încă nu există evaluări