Freigeben über


Erzwingen von Geschäftsregeln

Sie können Geschäftsregeln für die Dateneingabe erzwingen, indem Sie Gültigkeitsregeln auf Feld- und Datensatzebene erstellen. Mit Hilfe dieser Gültigkeitsregeln können Sie die Daten überprüfen, die in die Felder und Datensätze von Datenbanktabellen eingegeben werden. Gültigkeitsregeln auf Feld- und Datensatzebene vergleichen die eingegebenen Werte mit den von Ihnen definierten Regelausdrücken. Wenn der eingegebene Wert mit den Anforderungen der Regel nicht übereinstimmt, wird er zurückgewiesen. Gültigkeitsregeln gibt es nur in Datenbanktabellen.

Gültigkeitsregeln auf Feld- und Datensatzebene ermöglichen es Ihnen zu steuern, welche Informationsarten in eine Tabelle eingegeben werden. Dies gilt unabhängig davon, ob der Zugriff auf die Daten mit Hilfe eines Datenblattfensters, eines Formulars oder programmgesteuert erfolgt. Damit können Sie die Regel für ein Feld konsistenter mit einem geringeren Codeumfang durchsetzen, als wenn Sie den Regelausdruck als Code in einer VALID-Klausel für ein Formular oder in einem Teil des Programmcodes schreiben. Außerdem werden die in einer Datenbank festgelegten Regeln für alle Benutzenden der Tabelle durchgesetzt, ungeachtet der Anforderungen einer Anwendung.

Sie können auch potentielle Indizes oder Primärindizes erstellen, die doppelte Einträge in einem Feld verhindern. Darüber hinaus haben Sie die Möglichkeit, Trigger bereitzustellen, die die referentielle Integrität erzwingen oder andere Aktionen ausführen, wenn die Daten in Ihrer Datenbank geändert werden.

Wann Beschränkungen Geltung verschafft wird

Sie können die Datenbankbeschränkungen auf der Ebene wählen, auf der eine datenbezogene Regel oder eine Regel der referentiellen Integrität durchgesetzt werden soll. Ferner können Sie die Aktion bestimmen, durch die die Beschränkung aktiviert wird. In der folgenden Tabelle finden Sie die Beschränkungen zur Gültigkeitsprüfung der Daten in der Reihenfolge, in der sie durch Visual FoxPro durchgesetzt werden, die Ebenen, auf der sie angewendet werden, sowie die Aktion, die die Gültigkeitsprüfung aktiviert.

Mechanismus Ebene Aktiviert
NULL-Gültigkeitsprüfung Feld oder Spalte Wenn Sie sich in einem Datenblattfenster aus einem Feld oder einer Spalte bewegen oder wenn sich der Feldwert bei einem INSERT- oder REPLACE-Vorgang ändert.
Gültigkeitsregeln auf Feldebene Feld oder Spalte Wenn Sie sich in einem Datenblattfenster aus einem Feld oder einer Spalte bewegen oder wenn sich der Feldwert bei einem INSERT- oder REPLACE-Vorgang ändert.
Gültigkeitsregeln auf Datensatzebene Datensatz Wenn ein Datensatz aktualisiert wird.
Potentieller/Primärer Index Datensatz Wenn ein Datensatz aktualisiert wird.
VALID-Klausel Formular Wenn Sie den Datensatz verlassen.
Trigger Tabelle Wenn sich ein Tabellenwert bei einem der Ereignisse INSERT, UPDATE oder DELETE ändert.

Restriktionen werden in der Reihenfolge aktiviert, in der sie in der Tabelle aufgeführt sind. Die erste Verletzung einer Gültigkeitsprüfung beendet die Ausführung eines Befehls.

Potentielle und Primärindizes werden im Abschnitt Steuern von Duplikatwerten erläutert.

Beschränken von Werten eines Feldes

Wenn Sie die Informationsart, die ein Benutzer in ein Feld eingeben kann, steuern möchten und wenn die Gültigkeit der Daten in einem Feld unabhängig von jedem anderen Eintrag im Datensatz geprüft werden kann, verwenden Sie eine Gültigkeitsregel auf Feldebene. Beispielsweise möchten Sie mit Hilfe einer Gültigkeitsregel auf Feldebene sicherstellen, dass der Benutzer keine negative Zahl in ein Feld eingibt, das nur positive Werte enthalten soll. Mit einer Gültigkeitsregel auf Feldebene können Sie auch die in ein Feld eingegebenen Werte mit den Werten in einer anderen Tabelle vergleichen.

Vermeiden Sie es, anwendungsspezifische Gültigkeitsregeln auf Feld- oder Datensatzebene zu erstellen. Verwenden Sie Gültigkeitsregeln auf Feld- und Datensatzebene, um Datenintegrität und Geschäftsregeln durchzusetzen, die für die Daten Ihrer Datenbank immer gelten, unabhängig davon, welcher Benutzer auf die Daten zugreift. Sie können beispielsweise eine Regel erstellen, die den Eintrag im Tabellenfeld postal_code mit einer Prüftabelle, die die Postleitzahlen für Ihr Land/Ihre Region enthält, vergleicht und jede eingegebene Postleitzahl zurückweist, die noch nicht als gültige Postleitzahl enthalten ist.

So erstellen Sie eine Gültigkeitsregel auf Feldebene

  1. Öffnen Sie im Tabellen-Designer eine Tabelle.

  2. Wählen Sie im Tabellen-Designer den Namen des Feldes aus, für das Sie eine Regel definieren möchten.

  3. Wählen Sie die Schaltfläche rechts neben dem Feld Regel.

  4. Erstellen Sie im Ausdruck-Generator den Ausdruck, und wählen Sie OK.

  5. Geben Sie im Feld Meldung die Fehlermeldung in Anführungszeichen ein.

  6. Wählen Sie OK.

    - Oder -

  • Geben Sie im Tabellen-Designer unter Feldgültigkeit den gewünschten Regelausdruck im Feld Regel ein.

    - Oder -

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

    - Oder -

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

Beispielsweise fügt der folgende Code der Tabelle orditems eine Gültigkeitsregel auf Feldebene hinzu, die fordert, dass eine in das Feld quantity eingegebene Zahl größer gleich 1 sein muss:

ALTER TABLE orditems 
    ALTER COLUMN quantity SET CHECK quantity >= 1

Wenn der Benutzer einen Wert < 1 einzugeben versucht, zeigt Visual FoxPro einen Fehler an und weist den unzulässigen Wert zurück.

Sie können die bei einer Verletzung der Regel angezeigte Meldung anpassen, indem Sie dem Feld einen Gültigkeitstext hinzufügen. Der eingegebene Text wird dann anstelle der Standardfehlermeldung angezeigt.

So fügen Sie einer Gültigkeitsregel auf Feldebene eine benutzerdefinierte Fehlermeldung hinzu

  • Geben Sie im Tabellen-Designer unter Feldgültigkeit die gewünschte Fehlermeldung im Feld Meldung ein.

    - Oder -

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

Beispielsweise fügt der folgende Code der Tabelle orditems sowohl eine Gültigkeitsregel auf Feldebene, bei der die im Feld quantity eingegebenen Zahlen größer gleich 1 sein müssen, als auch eine benutzerdefinierte Fehlermeldung hinzu:

ALTER TABLE orditems ;
   ALTER COLUMN quantity SET CHECK quantity >= 1 ;
   ERROR "Quantities must be greater than or equal to 1"

Wenn der Benutzer einen Wert < 1 einzugeben versucht, zeigt Visual FoxPro ein Fehlerdialogfeld mit der von Ihnen definierten Fehlermeldung an und weist den unzulässigen Wert zurück. Sie können eine benutzerdefinierte Fehlermeldung auch mit dem ALTER TABLE-Befehl mit der SET CHECK-Klausel und der optionalen ERROR-Klausel erstellen.

Siehe auch

Steuern der Anzeige von Feldern | Wann Regeln auf Feldebene überprüft werden | Arbeiten mit Tabellen | Erstellen von Standardfeldwerten | Überprüfen von Regeln auf Datensatzebene