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