Freigeben über


Wann Regeln auf Feldebene überprüft werden

Gültigkeitsregeln auf Feldebene werden geprüft, wenn sich der Feldwert ändert. Im Gegensatz zu Triggern reagieren Gültigkeitsregeln auf Feldebene auch auf zwischengespeicherte Daten. Wenn Sie mit Daten in einem Datenblatt-, Formular- oder anderen Fenster der Benutzeroberfläche arbeiten, prüft Visual FoxPro die Gültigkeitsregeln auf Feldebene beim Verlassen des betreffenden Feldes. Wurde ein Feldwert nicht geändert, wird die Regel nicht geprüft. Sie können sich also nach Belieben mit TAB durch die Felder bewegen, ohne dass das System die Gültigkeit der Daten prüft.

Prüfen der Gültigkeitsregeln auf Feldebene

Dateneingabe Fenster oder Befehl Prüfen der Gültigkeitsregel auf Feldebene
Benutzeroberfläche Datenblattfenster
Formular
Anderes Fenster
Wenn Sie nach dem Ändern des Feldwertes das Feld verlassen. (Wurde der Feldwert nicht geändert, wird die Regel nicht geprüft.)
Befehle, bei denen keine Felder angegeben werden APPEND
APPEND GENERAL
APPEND MEMO
BROWSE
CHANGE
DELETE
EDIT
GATHER
Wenn sich der Feldwert ändert (in der Reihenfolge der Felddefinitionen).
  APPEND BLANK
INSERT
INSERT - SQL
Wenn ein Datensatz an- oder eingefügt wird.
Befehle, bei denen Felder angegeben werden UPDATE
UPDATE - SQL
REPLACE
In der Reihenfolge, in der die Felder im Befehl angegeben sind.

Prüfen von Werten auf Datensatzebene

Mit Gültigkeitsregeln auf Datensatzebene können Sie die Informationsart steuern, die ein Benutzer in einen Datensatz eingeben kann. Gültigkeitsregeln auf Datensatzebene vergleichen normalerweise die Werte von zwei oder mehr Feldern in demselben Datensatz, um sicherzustellen, dass diese die für die Datenbank festgelegten Geschäftsregeln einhalten. So können Sie z. B. mit einer Gültigkeitsregel auf Datensatzebene sicherstellen, dass der Wert eines Feldes immer größer als derjenige eines anderen Feldes in demselben Datensatz ist.

So erstellen Sie eine Gültigkeitsregel auf Datensatzebene und eine benutzerdefinierte Fehlermeldung

  • Geben Sie im Tabellen-Designer auf der Registerkarte Tabelle die gewünschte Regel und Fehlermeldung in den Feldern Regel bzw. Meldung ein.

    - Oder -

  • Verwenden Sie den Befehl CREATE TABLE oder ALTER TABLE mit der CHECK-Klausel.

Beispielsweise möchten Sie sicherstellen, dass Angestellte bei ihrer Einstellung 18 Jahre oder älter sind. Der folgende Code fügt der Tabelle employee eine Gültigkeitsregel auf Datensatzebene sowie einen Fehlertext hinzu. Die Regel legt fest, dass das in die Spalte hire_date eingegebene Einstellungsdatum größer gleich dem Geburtsdatum plus 18 Jahre ist:

ALTER TABLE employee SET CHECK ;
   hire_date >= birth_date + (18 * 365.25) ;
   ERROR "Employees must be 18 years or older by date of hire"

Wenn ein Benutzer dann einen Datensatz für Angestellte mit einem ungültigen Datum eingibt, zeigt Visual FoxPro ein Fehlerdialogfeld mit der von Ihnen definierten Fehlermeldung an und aktualisiert den Datensatz nicht.

Sie können eine Gültigkeitsregel auf Datensatzebene auch mit dem ALTER TABLE-Befehl und der SET CHECK-Klausel erstellen. Dabei sollten Sie sicherstellen, dass die für Felder festgelegten Regeln mit den für die Tabelle definierten Regeln semantisch nicht in Konflikt geraten. Denn Visual FoxPro versucht nicht, die Ausdrücke auf Feld- und Datensatzebene hinsichtlich ihrer Konsistenz zu vergleichen.

Siehe auch

Erzwingen von Geschäftsregeln | Überprüfen von Regeln auf Datensatzebene | Arbeiten mit Tabellen | Verwendung von Triggern | Erstellen von Triggern | Einschränken des Zugriffs auf Felder