Schreibschutz NOCHANGE
Sowohl eine ganze Virtab als auch einzelne Tabellen
innerhalb der Virtab können schreibgeschützt werden. Dies
geschieht jeweils durch Angabe des Attributs NOCHANGE.
Bei einer schreibgeschützen Virtab ist natürlich nur die
entsprechende View funktional, ein Aufruf der INSERT-,
UPDATE- oder DELETE-Prozedur erzeugt eine Fehlermeldung.
Dennoch sollten auch solche Views mittels des
Virtab-Mechanismus (ER2SQL-Codegenerierung) erzeugt werden.
Bei einzelnen schreibgeschützten Tabellen innerhalb einer
Virtab werden Einträge bei INSERT nicht erzeugt (ggf. gibt es
dann die Fehlermeldung ‘nicht gefunden'). UPDATE führt zu
einer Fehlermeldung. DELETE wird für NOCHANGE-Basistabelen
stillschweigend nicht durchgeführt.
Schreibzwang MUSTCHANGE
Für eine Basistabelle in der Virtab kann ein Schreibzwang erklärt werden, indem sie mit dem Attribut MUSTCHANGE versehen wird.
Die INSERT-Prozedur schlägt dann fehl, wenn sie den
einzufügenden Datensatz schon vorfindet. Eine DELETE-Prozedur
schlägt fehl, wenn sie den Datensatz nicht löschen kann.
MUSTCHANGE soll sicherstellen, dass INSERT bzw. DELETE auf
jeden Fall die Anzahl der
Records in der Basistabelle erhöhen oder erniedrigen. Dies ist aufgrund der eingebauten Verknüpfungsintelligenz der Virtab-Prozeduren nicht immer selbstverständlich.
|