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.