CATEGORII DOCUMENTE |
Punerea la zi a bazei de date este de nerealizat fara posibilitatea stergerii articolelor care, fie au fost introduse eronat de operator, fie nu mai sunt valabile pentru colectia de date respectiva. De exemplu, intr-o evidenta BIBLIOTECA, necesara prelucrarilor curente relativ la carti si cititori, ce rost ar avea sa retinem informatii despre cartile pierdute, sau scoase din uz, sau informatii despre cititorii bibliotecii care si-au retras legitimatiile de intrare si nu mai au acces la biblioteca?
Desigur, astfel de date sunt uneori interesante dar, sa nu uitam ca viteza de raspuns la interogari este direct dependenta de marimea fisierului. Pentru situatiile in care, eventual, "cineva" ar cere date despre cartile sau persoanele care au fost in evidentele bibliotecii si nu mai sunt, se pot crea arhive (istorice), eliberand spatiul fisierelor de lucru.
Stergerea articolelor se poate face logic, folosind o marcare vizibila la afisare prin caracterul "*" inaintea primului camp. Marcarea pentru stergere poate fi anulata sau, daca s-a considerat oportuna stergerea articolului, atunci acesta se poate sterge fizic din baza de date.
Comanda de marcare pentru stergere este DELETE:
DELETE[<domeniu>][FOR<cond>] [WHILE<cond>]
Comanda marcheaza pentru stergere articolele din domeniul precizat in clauza <domeniu> care indeplinesc conditiile puse in clauzele FOR si WHILE.
Implicit comanda actioneaza pe articolul curent.
Exemplu
USE mijloacef
CLEAR
SET DELETED OFF
DELETE FOR MOD ( RECNO ( ), 2) = 0
NOTE se sterg inregistrarile cu numar de ordine par
LIST
NOTE toate inregistrarile din baza de date sunt afisate, cele sterse avand un asterisc;
in dreptul lor
GO TO 2
DISPLAY && anregistrarea este afisata chiar daca este marcata pentru stergere;
Display avand ca domeniu implicit inregistrarea curenta
USE
Observatie: Starea de articol marcat pentru stergere nu influenteaza in mod obisnuit nici comanda de afisare (observam "*" inaintea primului camp!), nici o eventuala cautare prin LOCATE, o copiere (COPY), o sortare (SORT), etc.
Acest lucru se datoreaza valorii OFF pe care este pozitionata implicit comanda comutator SET DELETED ON/OFF.
Valoarea ON determina ignorarea articolelor marcate pentru stergere.
Stergerea fizica a articolelor se poate face prin doua comenzi: PACK si ZAP.
PACK ZAP
Comanda PACK permite stergerea fizica din fisier a tuturor articolelor marcate anterior. Nu mai este nici o posibilitate de recuperare a acestor date.
Exemplu: se sterge inregistrarea a 5-a din baza de date mijloacef.
USE mijloacef
LIST
DELETE RECORD 5 && se marcheaza pentru stergere a 5-a inregistrare
PACK && se sterge fizic a 5-a inregistrare
LIST
USE
Comanda ZAP permite stergerea definitiva din fisier a tuturor articolelor, fara ca in prealabil sa fi avut loc o operatie de marcare. Este similara secventei de comenzi:
delete all
pack
Observatie Trebuie sa fim atenti la pozitionarea comutatorului SET SAFETY ON/OFF care, pe valoarea ON cere acordul la stergere.
Anularea marcajelor de stergere se face prin comanda RECALL:
RECALL [<domeniu>] [FOR <cond>] [WHILE<cond>] |
Comanda RECALL permite revenirea unui articol la starea anterioara operatiei de stergere numai daca stergerea a fost logica (prin comanda DELETE).
Actiunea comenzii are ca domeniu implicit articolul curent. Prin specificarea clauzelor [<domeniu>], FOR si WHILE putem selecta articolele sterse prin comanda DELETE, a caror marcaje dorim sa le anulam.
Exemplu:
USE mijloacef
DELETE FOR RECNO ( ) <=3
&& se sterg primele 3 inregistrari
LIST && se observa efectul stergerii
RECALL ALL && sunt refacute toate inregistrarile. Cele care nu erau;
marcate pentru stergere nu sunt afectate
LIST
USE
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1074
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved