04.03.2015, Vladimír Klaus, navštíveno 5192x
Předpokládejme, že budeme chtít zaznamenávat změny v tabulce objednávek. Začneme tím, že každé přidání nové objednávky do tabulky bude zapsáno do logovací tabulky, včetně přesného data, případně dalších informací.
Otevřete si v MS Accessu tabulku ObjednavkyFULL a na pásu karet si zobrazte Nástroje tabulky – Tabulka.
Nyní klikněte na tlačítko „Po vložení“ – objeví se před vámi jakýsi editor, pomocí kterého nastavíte vše, co je potřeba.
Z rozbalovacího seznamu zvolte „Vytvořit záznam“. Editor se změní a bude očekávat, že vyberete, kde se má vytvořit záznam (zadáte tabulku Log), jaká pole se mají nastavit a jak. Nepříjemné je, že v tu chvíli nemůžete s databází pracovat a podívat se třeba na názvy jiných polí v jiných tabulkách apod. Takto tedy přidáte tři položky:
- IdObjednavky nastavíte na hodnotu ID tabulky ObjednavkyFULL
- DatumACasAkce nastavíte na aktuální datum a čas
- Akce nastavíte na text „přidání“
Nyní musíte editor zavřít, čímž se trigger (datové makro) uvede do chodu a bude čekat, až se do tabulky ObjednavkyFULL něco přidá.
Nyní si otevřete tabulku objednávek a něco do ní přidejte. A poté si otevřete tabulku Log, nebo pokud ji máte otevřenou, klikněte na ni a stiskněte F5. Situace může pak vypadat následovně.
Pokud databáze podporuje skutečné triggery, pak se setkáte třeba s tímto zápisem – vytvoření triggeru, který se spustí před tím, než něco vložíme do tabulky objednávek.
CREATE TRIGGER MujTrigger BEFORE INSERT ON Objednavky
BEGIN
tady by pak byl „program“, který by potřebnou akci zajistil
END;