Databáze pro komunikaci maker s údržbou systému
Údržba systému slouží mimo jiné ke smazání vět databází, které jsou ke
smazání určené (nastavený nejvyšší bit v Attr věty). Údržba se však stará
o to, aby nesmazala věty, které používá jiná databáze i když jsou ke smazání
určené.
Jestliže však nějakou větu používá makro, nelze tuto skutečnost samozřejmě
údržbou zjistit, protože možnosti použití této informace jsou nekonečné.
Proto je zde databáze pro komunikaci maker s údržbou systému. Přejete-li
si zablokovat nějakou databázovovu větu proti smazání údržbou, stačí uložit
informace o ní do této databáze.
V makrojazyku se k větě této databáze, která je nahrána v paměti,
přistupuje pomocí klíčového slova DBU.
Stavba věty:
¸÷÷÷÷÷÷ö÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ö÷÷÷÷÷÷÷÷÷÷÷÷ö÷÷÷÷÷÷÷÷÷÷÷÷÷ö÷÷÷ç
ËČíslo ËNázev položky ËTyp položky ËIdentifikátorËIdxË
Ö÷÷÷÷÷÷ë÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ë÷÷÷÷÷÷÷÷÷÷÷÷ë÷÷÷÷÷÷÷÷÷÷÷÷÷ë÷÷÷Ô
Ë 1 ËIdent ËLongint ËdbIdent Ë x Ë
Ë 2 ËAttr ËWord ËdbAttr Ë Ë
Ö÷÷÷÷÷÷ë÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ë÷÷÷÷÷÷÷÷÷÷÷÷ë÷÷÷÷÷÷÷÷÷÷÷÷÷ë÷÷÷Ô
Ë 3 ËKód ËString[10] ËdbuKod Ë x ËDefault
Ë 4 ËTyp databáze ËByte ËdbuDBT Ë Ë
Ë 5 ËIdent blok.věty ËLongInt ËdbuIdent Ë Ë
Ö÷÷÷÷÷÷ô÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ô÷÷÷÷÷÷÷÷÷÷÷÷ë÷÷÷÷÷÷÷÷÷÷÷÷÷ë÷÷÷Ô
Ë Celkem položek = 5 ËdbuMax Ë Ë
î÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ô÷÷÷÷÷÷÷÷÷÷÷÷÷ô÷÷÷¶
Stavba indexů:
· dbIdent Ë Ident Ë
î÷ô÷ô÷ô÷¶
· dbuKod ËdbuKod(10)ËdbuDBTË dbuIdent Ë
îôôôôôôôôôôô÷÷÷÷÷÷ô÷÷ô÷÷ô÷÷ô÷÷¶
· Příklad: (pro FluxPam4)
-- Zablokuj středisko jménem "DOPRAVA" --
if _FindRec(dbtStr, strJmeno, _StrToCS("DOPRAVA")) then
if _AddRec(dbtDBU) then
DBU[dbuKod] := "TEST"; -- bývá jméno makra --
DBU[dbuDBT] := dbtStr;
DBU[dbuIdent] := Str[dbIdent];
endif
endif
· Příklad: (pro FluxPam4)
-- Odblokuj středisko jménem "DOPRAVA" --
if _FindRec(dbtStr, strJmeno, _StrToCS("DOPRAVA")) then
if _FindRec(dbtDBU, dbuKod,
"TEST "+_Chr(dbtStr)+_LIToKey(Str[dbIdent])) then
_EraseRec(dbtDBU)
endif
endif
· Podívejte se na standardní stavbu databázové věty.