P°i zruÜenφ zßznamu v tabulce se zapφÜe hodnota TRUE do atributu
DELETED. Tento atribut se za normßlnφch okolnostφ p°i prohlφ₧enφ
zßznam∙ zapsan²ch v tabulce nezobrazuje. V p°φpad∞, ₧e je pot°eba
obnovit jeden nebo vφce zruÜen²ch zßznam∙, dß se tento atribut zp°φstupnit
tak, ₧e se p°i otevφranφ tabulky podr₧φ stlaΦenΘ tlaΦφtko CTRL.
ZruÜenΘ zßznamy v tabulce lze obnovit za p°edpokladu, ₧e nebylo
provedeno jejich uvoln∞nφ, nebo zkompaktn∞nφ tabulky. Na obrßzku
jsou zruÜenΘ zßznamy zobrazeny s p°eÜkrtnut²m ΦtvereΦkem ve sloupci
ZruÜeno?, u uvoln∞n²ch zßznam∙ je ΦtvereΦek Üed². ZruÜenφm zaÜkrtnutφ
ΦtvereΦku se zßznam obnovφ.
V re₧imu obnovovßnφ zßznam∙ je lze sice uspo°ßdat nebo vyhledat
podle urΦitΘho kritΘria, ale v²slednß mno₧ina zßznam∙ neobsahuje
zruÜenΘ v∞ty. U tabulek s v∞tÜφm poΦtem zßznam∙ proto b²vß dost
problematickΘ vyhledat konkrΘtnφ zruÜen² zßznam. V takovΘm p°φpad∞
b²vß v∞tÜinou sch∙dn∞jÜφ vyhledat a obnovit zßznam programem. Program
m∙₧e se zruÜen²m (nikoli uvoln∞n²m) zßznamem normßln∞ pracovat.
ProblΘmem m∙₧e b²t i obnovenφ zßznamu v tabulce s jedineΦn²m indexem.
Pokud je toti₧ u zruÜenΘho zßznamu hodnota atributu, na kter² existuje
v tabulce jedineΦn² index, rovna hodnot∞ stejnΘho atributu n∞kterΘho
nezruÜenΘho zßznamu, obnovenφ nelze provΘst. ╪eÜenφm je potom bu∩
nahrazenφ p∙vodnφ hodnoty atributu zruÜenΘho zßznamu jinou jedineΦnou
hodnotou, nebo zruÜenφm jedineΦnΘho indexu.
V nßsledujφcφ ukßzce projde program vÜechny v∞ty v tabulce Obnov
a zruÜenΘ zßznamy obnovφ:
table Obnov;
var
cnt,
r : trecnum;
chyba
: short;
begin
if Rec_cnt(Obnov,
cnt)
then
Signalize
else
for
r := 0 to cnt - 1 do
with
Obnov[r] do
if
DELETED
then
begin
Err_mask(TRUE);
DELETED
:= FALSE;
chyba
:= Sz_error;
case
chyba of
0:
Info_box(Int2str(r), "Zßznam byl obnoven");
140:
Info_box(Int2str(r), "Nelze obnovit. Zßznam je ji₧ uvoln∞n.");
172:
Info_box(Int2str(r), "Nelze obnovit. Duplicita klφΦ∙ v jedineΦnΘm
indexu.");
else:
Info_box(Int2str(r), "Nelze obnovit.");
end;
Err_mask(FALSE);
end;
end.