Modificarea informatiilor stocate intr-o b.d se realizeaza cu ajutorul
comenzilor CHANGE, EDIT, BROWSE si REPLACE. Primele trei comenzi nu modifica
propriu-zis continutul b.d. , ci deschid o fereastra
de editare in care utilizatorul va modifica informatiile din b.d.
Comenzile CHANGE si EDIT sunt identice, ele difera de comanda BROWSE doar prin
modul de organizare pe ecran a ferestrei corespunzatoare.
sintaxa : change | edit
[ FIELDS <lista campuri> ]
[ <domeniu>] [ FOR<expL1>] [WHILE<expL2>]
[ FREEZE <camp>]
[noapPend] [noclear] [nodelete]
[noedit] [nomodify]
[VALID [:F] <exp1>[ ERROR<expC1>]]
[WHEN<expL1>]
[WIDTH<expN1>]
Iesirea din fereastra de editare si salvarea modificarilor se face folosind
combinatia de taste Ctrl+End. Daca nu se doreste salvarea se va
folosi iesirea cu tastele Ctrl+Q
Clauza FIELDS are ca efect afisarea spre editare doar a campurilor specificate
in <lista campuri>, in ordinea aparitiei lor in lista.
<domeniu>, FOR, WHILE specifica domeniul
inregistrarilor ce vor fi accesibile spre editare.
Clauza FREEZE se foloseste pentru a selecta spre modificare un
singur camp restul fiind doar afisate in fereastra de editare, fara a se
permite modificarea lor.
Clauza NOAPPEND opreste utilizatorul de a adauga noi inregistrari
din fereastra de editare.
Clauza NODELETE nu permite stergerea inregistrarilor din b.d
NOEDIT si NOMODIFY se exclud reciproc , nu permit utilizatorului modificarea
inregistrarilor ci doar vizualizarea acestora, dar nu presupun protectie la stergere.
Clauza [VALID [:F] <exp1>[ ERROR<expC1>]]
permite validarea inregistrarii dupa modificare. Astfel, dupa ce se iese din
editarea inregistrarii se evalueaza <exp1> ca fiind .T. daca datele
introduse sunt corecte, altfel aceasta se considera .F., afisandu-se mesajul de
eroare<expC1>, daca clauza ERROR apare, sau mesajul implicit de eroare
altfel.
:F forteaza evaluarea <exp1> chiar daca nu s-au modificat valorile din
inregistrare ci doar s-a trecut prin ea.
Clauza WHEN permite intrarea in editare doar daca <expL1> este evaluata
ca .T.
Clauza WIDTH limiteaza numarul de caractere afisate , fara a afecta latimea
campului in b.d.
Comanda BROWSE
sintaxa : BROWSE
[FIELDS <lista campuri>]
[ FOR <expL1>]
[FREEZE]
[noapPend] [noclear] [nodelete]
[noedit] [nomodify]
[VALID [:F] <exp1>[ ERROR<expC1>]]
[WHEN<expL1>]
[WIDTH<expN1>]
Semnificatia
clauzelor este aceeasi ca la comanda CHANGE.
Modificarea continutului unei b.d. se poate face si cu
comanda REPLACE, insa aceasta nu deschide o fereastra de editare, ci realizeaza
propriu-zis actualizarea b.d. cu datele precizate prin comanda.
sintaxa : REPLACE <camp1> WITH <expr1 >
[, <camp2> WITH <expr2 > ]
[<domeniu>] [FOR<expL1>] [WHILE<expL2>]
Comanda inlocuieste vechea valoare din campul <camp1> cu valoarea
rezultata din evaluarea expresie<expr1>, valoarea din <camp2> cu
<expr2> s.a.m.d.
Pentru campuri numerice, daca nu se reuseste incadrarea valorii expresiei in
campul respectiv, acesta va fi umplut cu asteriscuri.
<domeniu> FOR, WHILE specifica domeniul inregistrarilor la care se refera
comanda, domeniul implicit fiind inregistrarea curenta
ex.: USE agenda
REPLACE nume WITH UPPER(nume), prenume WITH PROPER(prenume) ALL
BROWSE FIELDS nume, prenume FOR nr_telefon>320000