Sunteți pe pagina 1din 6

COMENZII VISUAL FoxPro

1. CREAREA TABELELOR
O baz de date este vzut ca o colecie de tabele relaionale, mpreun cu indecii, procedurile stocate,
imaginile asociate tabelelor. Extensia acestui fiier este .DBC
Proiectarea structurii unei tabele se poate realiza prin definirea direct a cmpurilor n cadrul comenzii
CREATE TABLE sau interactiv prin comanda CREATE.
a) comanda CREATE permite proiectarea interactiv a structurii.
Fiecare cmp al unei tabele este caracterizat prin:
Name: permite introducerea numelui de cmp, pn la 10 caractere;
Type: tipul datelor care pot fi memorate n cmpul respectiv; acesta poate fi: ir de caractere, numeric,
dat calendaristic, logic, memo, general:
Width: reprezint numrul de caractere pe care l ocup fiecare dat memorat n cmpul respectiv;
Decimal permite introducerea numrul de poziii zecimale
Index: permite crearea unui index avnd cmpul curent drept cheie.
NULL: arat dac n cmpul respectiv poate fi memorat sau nu o valoare nul;
b) comanda CREATE TABLE permite specificarea direct a structurii
CREATE TABLE | DBF <tabel1> (<cmp1> <tip> (<lungime> [, <zecimale>])
sau CREATE <NUME>
Se va crea tabela <tabel1>. Aceasta va conine cmpurile <cmp1>, <cmp2>, ...<cmpn>. Fiecrui
cmp i se vor preciza tipul <tip>, lungimea <lungime> i dac este cazul numrul de zecimale
<zecimale>.
2. Modificarea structurii tabelelor
Modificarea structurii unei tabele se poate efectua n mod interactiv cu ajutorul comenzii
MODIFY STRUCTURE.
n cadrul acestei ferestre se pot aduga sau terge cmpuri i se pot modifica cele existente din punct de
vedere al numelui, tipului i mrimii. Totodat se poate interveni asupra indecsilor existeni precum i
asupra restriciilor impuse tabelei. Modificarea structurii poate duce la pierderea datelor.
3. Deschiderea/nchiderea unei tabele
Orice operaie asupra unei tabele, cu excepia definirii structurii, impune deschiderea acesteia, iar dup
terminarea activitii asupra datelor respective tabela va trebui nchis.
Deschiderea unei tabele se face ntr-o zon de memorie numit zon de lucru.ntr-o zon de lucru se poate
deschide o singur tabel.
Deschiderea unei tabele se face prin comanda USE
USE <tabela>IN <zona>[ALIAS <nume_alias>][AGAIN]
nchiderea unei singure tabele se face prin comanda USE IN <zona>
nchiderea tuturor tabelelor se face cu comanda CLOSE ALL
4. Filtrarea structurii sau selectarea cmpurilor
Uneori este necesar ca o parte din cmpuri s fie active
SET FIELDS TO <lista_campuri>
tergerea listei de cmpuri i anularea comenzii de selecie se face prin : SET FIELDS TO
Activarea listei de campuri reinut anterior sau dezactivarea ei se face prin:SET FIELDS ON/OFF
5. Filtarea articolelor
Operaia de filtrare a articolelor se face prin comanda: SET FILTER TO [<cond>]
1

6. Vizualizarea coninutului unei tabele


afiarea informaiilor dintr-o tabel se face prin comenzile:
DISPLAY| LIST

[[FIELDS] <list_cmpuri>] [<domeniu>] [FOR <cond1>] [WHILE <cond2>]

Comanda permite vizualizarea coninutului tabelei curente, n mod implicit fiind afiat coninutul
nregistrrii curente n cadrul formei sau ferestrei curent active.
Se poate limita afiarea la anumite cmpuri prin introducerea clauzei [FIELDS] <list_cmpuri> n
sintaxa comenzii. Afiarea coninutul unui cmp de tip memo este posibil numai prin includerea
numelui acestuia n <list_cmpuri>.
Se poate extinde domeniul de afiare prin includerea clauzei <domeniu> n sintaxa comenzii, n una din
variantele:
ALL- specific toate articolele
NEXT<n>-urmtoarele< n> articole fa de articolul curent
RECORD <n>-selecteaz doar articolul cu numr <n>
REST- toate articolele pana la sfarsitul fisierului
Totodat, se poate limita afiarea nregistrrilor incluznd clauza WHILE <cond2> n sintaxa comenzii
DISPLAY, aceasta avnd loc atta timp ct condiia <cond2> este adevrat. Clauza FOR <cond1>
limiteaz afisarea nregistrrilor la acelea care ndeplinesc condiia <cond1> din cadrul domeniului luat
n considerare.
Comanda LIST este similar comenzii DISPLAY, n mod implicit fiind ns vizualizat ntregul coninut
al tabelei curente.
7. CUTAREA SECVENIAL I POZIIONAREA N BAZA DE DATE
1. Detectarea nceputului respectiv a sfritului unei tabele
Funciile logice BOF (Bottom Of File) i EOF (End Of File) permit detectarea, n parcurgerea tabelei, a
nceputului respectiv a sfritului acesteia.
BOF ([<zon_de_lucru> <alias>])
EOF ([<zon_de_lucru> <alias>])
Tabela, al crei nceput respectiv sfrit se testeaz, poate fi cea curent sau cea specificat prin numrul
zonei de lucru n care a fost deschis sau prin pseudonumele <alias> al ei. Funciile returneaz valoarea
logic .T., atunci cnd indicatorul de nregistrri este poziionat la nceputul, respectiv la sfritul tabelei
respective.
Comenzi de poziionare a indicatorului de nregistrri
Pentru a ine evidena nregistrrii curent prelucrate dintr-o tabel, sistemul folosete o variabil
special, numit indicatorul de nregistrri. Aceast variabil indic totdeauna nregistrarea asupra
creia va aciona urmtoarea comand.
2.

GO TOP | BOTTOM [IN <zon_de_lucru>]


GO [RECORD] <expr1> [IN <zon_de_lucru>]
SKIP [<expr2>] [IN <zon_de_lucru>]
Comenzile GO i SKIP poziioneaz indicatorul de nregistrri, al tabelei curente sau specificate prin
<zon_de_lucru>, ntr-o anumit poziie:
TOP | BOTTOM : mut indicatorul de nregistrri pe prima, respectiv pe ultima nregistrare a tabelei;
RECORD <expr1> : mut indicatorul de nregistrri pe nregistrarea cu numrul de ordine dat de valoarea lui
<expr1>;
2

comanda SKIP fr clauza <expr2> mut indicatorul de nregistrri la nregistrarea urmtoare celei curente;
dac <expr2> este o valoare pozitiv, indicatorul de nregistrare va avansa spre sfritul tabelei cu <expr2>
poziii, iar dac <expr2> este negativ, deplasarea se va face spre nceputul tabelei.
n cazul tabelelor indexate, prima nregistrare, ultima nregistrare, nregistrarea urmtoare i
respectiv precedent sunt date de ctre eticheta index activ.
Comenzi de localizare a nregistrrilor n acces secvenial
LOCATE FOR <cond1> <domeniu>] [WHILE <cond2>]
3.

Comanda LOCATE parcurge tabela curent cutnd prima nregistrare pentru care <cond1> este
ndeplinit. Dac comanda are succes, funcia RECNO ( ) va returna numrul nregistrrii localizate, iar
funcia FOUND ( ) va lua valoarea logic .T. Dac LOCATE gsete o nregistrare, se poate folosi
comanda CONTINUE pentru a cuta urmtoarele nregistrri din tabela curent care ndeplinesc
condiia <cond1>. La execuia comenzii CONTINUE, procesul de cutare continu de la nregistrarea
imediat urmtoare celei gsite anterior. Comanda CONTINUE poate fi executat repetat pn la
detectarea sfritului de fiier sau pn la epuizarea domeniului de cutare stabilit prin clauza
<domeniu> a comenzii LOCATE sau pn la execuia unei alte comenzi LOCATE.
Dac LOCATE nu gsete nici o nregistrare corespunztoare, funcia RECNO ( ) va returna o
valoare egal cu numrul total de nregistrri plus 1 (RECCOUNT ( ) + 1), iar FOUND ( ) valoarea .F.
n mod implicit, comanda LOCATE caut prima nregistrare care ndeplinete condiia <cond1>
n ntreaga tabel. Se poate reduce domeniul de cutare (ALL) incluznd clauza <domeniu> n sintaxa
comenzii, n una din urmtoarele forme: NEXT, RECORD sau REST. Totodat, se poate limita
cutarea incluznd clauza WHILE <cond2> n sintaxa comenzii LOCATE, aceasta avnd loc atta timp
ct condiia <cond2> este adevrat.
4. Sortarea unei tabele
Comanda SORT rearanjeaz fizic articolele tabelei active, depunndu-le n alt tabel indicat n
comand prin clauza TO.
SORT TO <fis.dbf> ON <cheie> [/A] [/D] [IC] [ASCENDING/ DESCENDING] [FIELDS <listacamp>] [<domeniu>] [FOR <cond>] [WHILE <cond>]
Criteriul de ordonare este format din una sau mai multe chei. O cheie este un cmp al tabelei.
Se pot folosi toate cmpurile cu excepia de tip Memo i General. Pentru fiecare cheie se
specific sensul ordnrii: /A=cresctor, /D=descresctor. Litera C se folosete pentru a
ignora tipul literei.
Operaia de sortare duplic datele! Este preferabil ca dup folosirea rezultatelor sortrii s fie terse
fiierele manevr i pstrat baza de date iniial
Comanda COPY permite copierea
ntregului coninut al unei tabele (sau o
parte din ea n alt tabelCOPY TO <fis.dbf> [FIELDS <lista-cmp>][STRUCTURE]/ [[<domeniu>] [FOR <conditie>] [WHILE
<conditie>]]
5. Adugarea unor noi nregistrri n cadrul unei tabele

comenzile de tip APPEND

APPEND [BLANK] [IN <zon_de_lucru> <alias>]


Comanda adaug o nregistrare la sfritul tabelei cuente sau celei specificate prin IN
<zon_de_lucru> <alias>. Clauza BLANK adaug o nregistrare vid. Comanda APPEND fr
BLANK este folosit pentru adugarea de nregistrri prin intermediul unei ferestre de editare.

6. tergerea de nregistrri dintr-o tabel

Operaia de tergere a articolelor dintr-o tabel activ se realizeza n dou etape:


-

o stergere logic sau marcare pentru tergere, care poate fi anulat prin comanda RECALL

o tergere fizic efectiv situaie n care datele vor fi pierdute definitiv

1. Comanda DELETE marcheaz nregistrri pentru tergere din tabela curent deschis.
DELETE [<domeniu>] [FOR <expl1>] [WHILE <expl2>]
Pentru a afla daca un articol este sau nu marcat pentru stergere se foloseste functia
deleted([zona]) care va intoarce valoarea T dac articolul respectiv este marcat pentru stergere
2. Comanda PACK se folosete pentru tergerea fizic a nregistrrilor care anterior au fost
marcate logic. Nu mai este nici o posibilitate de recuperare a acestor date. Clauza MEMO se folosete
atunci cnd se dorete diminuarea spaiului disc nefolosit din fiierul Memo asociat, fr a afecta baza
de date Clauza DBF se folosete pentru a terge articolele marcate din baza de
date fr a modifica fiierul Memo asociat. PACK[MEMO][DBF]
3. comanda ZAP permite tergerea definitiva din fiier a tuturor articolelor, fr ca n
prealabil s fi avut loc o operaie de marcare.
4. Comanda
RECALL
permite
revenirea
anterioar operaiei de tergere numai dac tergerea a fost logic.

unui

articol

la

starea

RECALL[DOMENIU]>] [FOR<cond>][WHILE<cond>]
Aciunea comenzii are articolul curent ca domeniu implicit.
7. Modificarea coninutului tabelelor

comanda REPLACE

REPLACE <cmp1> WITH <expr1> [, <cmp2> WITH <expr2> ][<domeniu>] [FOR <cond1>]
[WHILE <cond2>]
Comanda REPLACE permite prin nlocuirea datelor din cmpurile <cmp1>, <cmp2>, cu valorile
expresiilor <expr1>, <expr2>domeniul implicit este articolul current.
8. Comenzile BROWSE, CHANGE i EDIT
BROWSE
[FIELDS <cmp1> [, <cmp2> ...]]
n cadrul ferestrei Browse este afiat coninutul tabelei, n mod implicit ntr-un format tabelar, coloanele
reprezentnd cmpuri, iar liniile nregistrri), coninut care poate fi modificat de utilizator n mod
interactiv. Se pot aduga noi nregistrri sau terge nregistrri existente, se poate interveni asupra
coninutului oricrui cmp i al oricrei nregistrri, se pot cuta diferite date, etc. n mod implicit sunt
afiate toate cmpurile din structura tabelei. Se poate restrnge afiarea la anumite cmpuri utiliznd
clauza FIELDS.
Comenzile CHANGE i EDIT prezint o sintax similar lui BROWSE, fereastra de vizualizare a
coninutului tabelei fiind ns diferit.
CHANGE | EDIT
[FIELDS <cmp1> [, <cmp2> ...]]
[FONT <font> [, <dimensiune>]] [STYLE <stil>]
[<domeniu> [FOR <expr1> ] [WHILE <expr2>]
Prin clauza <domeniu> se poate stabili mulimea nregistrrilor din tabela curent ce vor fi afiate ntr-o
fereastr de tip Change sau Edit. Clauzele FOR i WHILE se vor aplica numai nregistrrilor din
<domeniu>. Acesta poate fi ALL, NEXT n, REST sau RECORD n.
4

9. Indexarea tabelelor
Indexarea reprezint o tehnic de ordonare logic a datelor dintr-o tabel, dup diferite criterii, operaie
care ns nu afecteaz ordinea fizic a datelor din tabel, ci doar modul n care acestea sunt vzute de
utilizator.
Ordonarea unei tabele presupune stabilirea unui criteriu dup care s fie parcurse nregistrrile ei. Acest
criteriu poate fi un cmp sau o combinaie de cmpuri ale tabelei. Criteriul de ordonare reprezint de
fapt o expresie, numit cheie de ordonare sau de indexare, n alctuirea creia intr cmpuri ale tabelei.
Pentru stabilirea ordinii nregistrrilor tabelei se evalueaz expresia cheii de ordonare pentru fiecare
nregistrare n parte, valorile obinute se compar ntre ele, iar ordinea nregistrrilor n tabel se
stabilete n funcie de rezultatul obinut.
Exist dou tipuri de ordonri ale unei tabele:

fizic, numit i sortare, ce const n rearanjarea fizic a datelor din tabel ntr-o alt ordine, dat de
criteriul respectiv; n urma sortrii rezult o nou tabel, cu aceeai structur ca i cea de baz, dar cu
nregistrrile aranjate n ordinea dorit;
logic, numit i indexare, care const n construirea unui fiier special, folosit la regsirea datelor din
tabel n ordinea dorit; prin indexare, ordinea fizic a nregistrrilor din tabel nu se modific, se
schimb ns modul n care utilizatorul are acces la datele acesteia.
1. Crearea unui fiier index simplu se face cu comanada :
INDEX ON <exp_cheie>TO <fis_index>[FOR<expL>]
[UNIQUE] [Descending/Ascending]
<exp_cheie>- specific criteriul dup care se face ordonarea
<fis_index>- reprezint numele fiierului indexat
FOR<expL>- selecteaz nregistrrile tabelei care formeaz indexul
UNIQUE- se utilizeaz pentru a specifica prima dintre nregistrrile care au aceeai cheie de
indexare
Descending/Ascending - indic sensul ordonrii
2. pentru specificarea numelui indexului activ se foloseste
SET ORDER TO TAG <tag>
Sau
USE <bd> ORDER <tag>
3. pentru stergerea unui index se foloseste comanda
DELETE TAG <exp>
4. Funcii specifice fiierelor indexate:
TAG <nr_index>[,<zona>]- returneaz numele etichetei care ocup poziia <nr_index>n
fiierul structural asociat tabelei din,<zona> data
TAGNO <eticheta>[,<zona>]- d poziia pe care o are <eticheta>
KEY <nr_index>[,<zona>]- precizeaz expresia cheii de indexare a fiierului index simplu
ORDER>([<nr_zona>])- arat numele indexului active din[<nr_zona>]
Obs. Indexarea accept drept criteriu de ordonare o expresie(cheie) cu cmpuri ale tabelei
Indexarea permite selecie nregistrrilor care au valori distincte ale cheii de indexare
Fiierele index active se actualizeaz automat, fa de fierele obinute prin sortare.
10. Prelucrari statistice si financiare
COUNT [TO <var>][<domeniu>][FOR<cond>] [WHILE<cond>]- numara articolele din tabela activa
SUM[<lista_exp>][TO <lista_var>][<domeniu>][FOR<cond>] [WHILE<cond>]-permite insumarea
valorilor existente in articolele selectate conform expresiilor precizate.
AVERAGE[<lista_exp>][TO <lista_var>][<domeniu>][FOR<cond>] [WHILE<cond>]-permite calculul
mediei artimetice valorilor expresiilor din <lista_exp> pentru articolele din tabela activa.
5

CALCULATE [<lista_expr> ] [TO <lista_var>][<domeniu>][FOR<cond>] [WHILE<cond>]- comanda


poate calcula valorile mai multor expresii cum ar fi:
AVG(<exp>)- calculul mediei aritmetice
CNT(<exp>)- permite numararea articolelor selectate
SUM(<exp>)- permite insumarea valorilor expresiei
MAX(<exp>)- extrage cea mai mare valoare
MIN(<exp>)- extrage cea mai mica valoare
STD(<exp>)- intoarce abaterea medie patratica a expresiei date
VAR(<exp>)- calcueaza dispersia expresiei(patratul abaterii medii patratice)

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