Virtabs: Schreibschutz, Schreibzwang

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.

 

[Konzepte] [Virtab-Prozeduren] [LINK, FOREIGNKEY] [QUERY: Mehrfachzugriffe] [USES und Verschmelzen] [Schreibschutz, -zwang] [Daten-Teilmengen] [Synthetische Spalten] [User-SQL]