Stergerea unei inregistrari se poate realiza la doua nivele si
anume :
la nivel logic - inregistrarea nu este propriu-zis stearsa ci ea este marcata
pentru stergere, anumite comenzi si functii considera aceste inregistrari
absente din fisierul b.d., dar exista posibilitatea ca informatia continuta in
inregistrare poate fi recuperata;
la nivel fizic - inregistrarea este stearsa efectiv din b.d., ea nemaiputand fi
recuperata.
Marcarea pentru stergere a uneia sau a mai multor inregistrari se realizeaza cu
ajutorul comenzii DELETE
sintaxa : DELETE
[ <domeniu> ] [ FOR<expL1>] [ WHILE<expL2>]
unde <domeniu>, FOR, WHILE identifica inregistrarile ce vor fi marcate
pentru stergere. Domeniul implicit al comenzii DELETE este
inregistrarea curenta.
Accesul la inregistrarile marcate pentru stergere este controlat de comanda SET
DELETED
sintaxa : set deleted on |off
unde optiunea ON determina ca inregistrarile marcate pentru stergere sa nu
poata fi folosite de comenzile care folosesc domeniul inregistrarilor. Starea
initiala este OFF. Comenzile care actioneaza asupra
unei singure inregistrari sau care au ca domeniu implicit inregistrarea curenta
nu sunt afectate de aceasta comanda.
In interiorul unui program testarea marcajului de stergere a unei inregistrari
se face cu functia DELETED(). Aceasta returneaza
valoarea logica .T. daca inregistrarea curenta este
marcata pentru stergere.
sintaxa : DELETED( [<exp N>] )
unde <exp N> reprezinta zona de lucru in care este deschisa b.d. in cazul
in care functia se refera la alta b.d. decat cea activa.
Inlaturarea marcajului pentru stergere se realizeaza cu comanda RECALL; dupa ce marcajul a fost indepartat inregistrarea devine
accesibila pentru toate comenzile.
sintaxa : recall
[<domeniu>] [FOR <expL1>] [WHILE<expL2>]
Inregistrarile care nu sunt marcate pentru stergere nu sunt afectate de aceasta
comanda; domeniul implicit al comenzii RECALL este inregistrarea curenta.
PENTRU STERGEREA LA NIVEL FIZIC SE FOLOSESTE COMANDA pack
sintaxa : PACK
Comanda realizeaza stergerea fizica a tuturor inregistrarilor marcate pentru
stergere din b.d. Dupa aplicarea comenzii PACK asupra unei b.d. inregistrarile
nu mai pot fi refacute. Stergerile sunt permanente.
O alta comanda cu privire la stergerea inregistrarilor
din b.d. este comanda ZAP.
sintaxa : ZAP
Comanda sterge fizic toate inregistrarile din b.d. activa, fiind echivalenta cu
secventa de instructiuni
delete all
pack
diferenta consta in faptul ca ZAP este mai rapida.
Dupa aplicarea comenzii ZAP asupra unei b.d.
inregistrarile nu mai pot fi refacute. Stergerile sunt
permanente.