Creeaza.com - informatii profesionale despre


Cunostinta va deschide lumea intelepciunii - Referate profesionale unice
Acasa » scoala » informatica » baze de date
Actualizarea tabelelor FoxPro

Actualizarea tabelelor FoxPro


Actualizarea tabelelor FoxPro

Actualizarea tabelelor este operatia de "aducere la zi", prin adaugarea de noi date si modificarea sau stergerea logica si /sau fizica a celor existente.

1 Adaugarea inregistrarilor in tabele

Incarcarea cu date pe structura predefinita sau adaugarea de noi informatii se poate realiza prin comenzile APPEND si INSERT

Comanda APPEND asigura adaugarea de noi inregistrari la sfarsitul tabelei curente. Aceasta comanda are mai multe formate, cele mai utilizate fiind:

APPEND [BLANK] [IN <expr_n> | <expr_c>] [NOMENU]



APPEND FROM <nume_fisier> | ?

[FIELDS <lista_campuri>]

[FOR <expr_log1>]

[TYPE][DELIMITED [WITH <delimitator> | WITH TAB | WITH BLANK | WITH CHARACTER <delimitator>]

| DIF | FW2 | MOD | PDOX | WKS | RPD | SDF | SYLK | WK1 |WK3 | WR1 | WRK | XLS | XL5 ] [AS <nr_cod_pag>]

Primul format deschide o fereastra de editare in care utilizatorul poate introduce camp cu camp noile informatii. Macheta de incarcare contine pe verticala campurile care alcatuiesc structura tabelei. Comanda este de tip "full-screen", utilizatorul intrand in regim de editare cu posibilitatea accesarii oricarui caracter din articolul curent.

Clauza BLANK determina adaugarea unei inregistrari vide, fara posibilitatea de editare. Campurile unei astfel de inregistrari sunt incarcate ulterior de la tastatura, din variabile de memorie sau prin programe.

Clauza IN permite adaugarea de noi inregistrari intr-o alta tabela decat cea curenta.

Clauza NOMENU inhiba afisarea in bara meniu a optiunii Table.

Aceasta comanda este influentata de comanda SET CARRY care permite (cu ON), sau inhiba (cu OFF), copierea continutului inregistrarii curente in noua inregistrare. Comanda are sintaxa:

SET CARRY ON | OFF

SET CARRY TO [<lista_campuri> [ADDITIVE]]

unde: ON - activeaza mecanismul de copiere a campurilor din inregistrarea curenta intr-o noua inregistrare iar OFF - inhiba mecanismul de copiere (implicit);

Clauza TO <lista_campuri> - specifica numele campurilor care vor fi copiate;

Clauza ADDITIVE - permite adaugarea in lista definita anterior a unor noi campuri.

Comanda SET CARRY TO substituie si executarea comenzii SET CARRY ON

Cel de al doilea format al comenzii APPEND permite extinderea tabelei curente prin adaugarea la sfarsitul ei a unor articole preluate dintr-un alt fisier. Dupa executarea comenzii sistemul afiseaza un mesaj de forma "no. records added" prin care se specifica numarul articolelor adaugate.

2 Modificarea inregistrarilor unei tabele

Pentru modificarea datelor stocate VFP ofera mai multe metode in care sunt folosite comenzile: CHANGE, EDIT, BROWSE si REPLACE.

Primele trei comenzi sunt comenzi de tip "full-screen" care deschid ferestre de editare in care utilizatorul poate efectua o multitudine de operatii printre care si modificarea datelor continute in articole. In plus, in bara meniu devine operationala si optiunea Table cu structura:

Se observa ca optiunile din Table permit gestionarea operatiunilor atat la nivel de articol cat si la nivel de camp.

Comenzile CHANGE si EDIT sunt identice si deschid ferestre verticale asemanatoare ferestrelor de incarcare a articolelor.

Comanda BROWSE este cea mai puternica si afiseaza campurile unul langa altul, pe orizontala.

Comanda REPLACE este comanda de modificare propriu-zisa si are formatul:

REPLACE <nume_camp1> WITH <expr1> [ADDITIVE][, <nume_camp2> WITH <expr2> [ADDITIVE]] [<domeniu>][FOR <expr_log1>] [WHILE <expr_log2>[IN <expr_n> | <expr_c>][NOOPTIMIZE]

Comanda inlocuieste fiecare camp specificat cu rezultatul evaluarii expresiei asociate. Clauza ADDITIVE poate fi folosita numai pentru campurile de tip memo si determina adaugarea expresiei la vechiul continut al campului. Implicit comanda opereaza la nivelul inregistrarii curente. Pentru modificarea altei inregistrari sau a unui grup de inregistrari se folosesc clauzele <domeniu>, FOR si WHILE

Exemplul 1: Deoarece studentul Mihaescu s-a transferat de la sectia "Finante" la sectia "Management" sa se modifice campul denumirea specializarii:

USE student

REPLACE specializ WITH "Management";

FOR numest = "mihaescu"

3 Stergerea inregistrarilor dintr-o tabela

Renuntarea temporara sau definitiva la inregistrarile unei tabele se realizeaza prin operatia de stergere, care poate fi : logica si fizica.

Stergerea logica presupune marcarea articolelor cu un "*" in octetul alocat automat de catre sistem la definirea structurii tabelei folosind, comanda DELETE care are formatul general:

DELETE[<domeniu>][FOR<expr_log1>][WHILE <expr_log2>]

[IN <expr_n> | <expr_c>][NOOPTIMIZE]

Comanda DELETE opereaza implicit asupra inregistrarii curente, clauzele din formatul general avand acelasi rol ca si in cazul comenzilor precedente.

Accesul la inregistrarile marcate pentru stergere este controlat de comanda SET DELETED ON | OFF

Optiunea ON inhiba accesul la inregistrarile sterse logic a comenzilor care invoca acelasi grup de inregistrari. Optiunea OFF (implicita) admite accesarea tuturor inregistrarilor.

Exemplul 2: Sa se marcheze pentru stergere toti studentii care nu sunt la specializarea "Adm. Publica":

USE student

DELETE FOR specializ < > "Adm. Publica"

DISPLAY ALL FIELDS numest, prenume, specializ

Inhibarea accesarii articolelor marcate pentru stergere presupune secventa:

SET DELETED ON

DISPLAY ALL FIELDS numest, prenume, specializ

Testarea marcajului de stergere se realizeaza cu ajutorul functiei DELETE() care are formatul:

DELETE( [<expr_n> | <expr_c>] )

Functia DELETE() returneaza valoarea .T. pentru o inregistrare marcata si .F. pentru o inregistrare nemarcata pentru stergere.

Inregistrarile marcate pot fi reintroduse in tabela folosind comanda RECALL cu formatul general:

RECALL [<domeniu>][FOR<expr_log1>]

[WHILE <expr_log2>]

[NOOPTIMIZE]

Clauzele au aceiasi functiune ca si in cazul comenzii DELETE

Exemplu: Sa se anuleze marcajul de stergere pentru studentii de la specializarea "contabilitate".

USE student

RECALL FOR specializ = "contabilitate"

LIST FIELDS numest, prenume, specializ

Stergerea fizica inseamna eliminarea definitiva a inregistrarilor din tabela, fara posibilitatea recuperarii lor. Comenzile folosite sunt PACK si ZAP.

Comanda PACK permite eliminarea din tabela a tuturor inregistrarilor marcate pentru stergerea logica. Formatul general este:

PACK [MEMO] [DBF]

Clauza MEMO are ca efect eliminarea spatiului nefolosit din blocurile fisierului memo asociat tabelei curente fara a o afecta. In felul acesta se asigura o folosire eficienta a memoriei. Clauza DBF se foloseste pentru a sterge fizic inregistrarile marcate fara a modifica fisierul memo asociat. Comanda PACK fara clauze afecteaza ambele tipuri de fisiere(.dbf si .fpt).

Comanda ZAP are rolul de a sterge toate inregistrarile din tabela activa, fara ca acestea sa fi fost marcate logic. Ea se foloseste pentru "golirea" totala a tabelei fiind mai rapida decat secventa:

DELETE ALL

PACK

cu care este echivalenta.

In urma unei comenzi ZAP tabela ramane vida, structura definita nefiind afectata.





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.