Überprüfen von Regeln auf Datensatzebene
Genauso wie Gültigkeitsregeln auf Feldebene werden Gültigkeitsregeln auf Datensatzebene bei einer Änderung des Datensatzwertes aktiv. Unabhängig davon, ob Sie mit Daten in einem Datenblatt-, Formular- oder anderen Fenster der Benutzeroberfläche oder aber mit Befehlen zur Datenänderung arbeiten, prüft Visual FoxPro die Gültigkeitsregeln auf Datensatzebene, während Sie den Datensatzzeiger aus dem Datensatz heraus verschieben. Wurden innerhalb des Datensatzes keine Werte verändert, wird die Gültigkeitsregel auf Datensatzebene beim Verschieben des Datensatzzeigers nicht geprüft. Sie können sich also nach Belieben durch die Datensätze bewegen, ohne dass das System die Gültigkeit der Daten prüft.
Wenn Sie einen Datensatz ändern, ohne den Datensatzzeiger zu bewegen, und dann das Datenblattfenster schließen, wird die Regel trotzdem ausgewertet. Sie erhalten eine Fehlermeldung zu jedem auftretenden Fehler, und das Datenblattfenster wird geschlossen.
Vorsicht Verwenden Sie in Ihren Gültigkeitsregeln keine Befehle oder Funktionen, die versuchen, den Datensatzzeiger im aktuellen Arbeitsbereich (den Bereich, dessen Regeln geprüft werden) zu verschieben. Wenn Sie in Gültigkeitsregeln Befehle oder Funktionen wie SEEK, LOCATE, SKIP, APPEND, APPENDBLANK, INSERT oder AVERAGE, COUNT, BROWSE und REPLACEFOR einbeziehen, bewirkt dies möglicherweise, dass die Gültigkeitsregeln rekursiv ausgewertet werden und daher eine Fehlerbedingung erzeugt wird.
Im Gegensatz zu Triggern reagieren Gültigkeitsregeln auf Datensatzebene auch auf zwischengespeicherte Daten. Wenn eine derartige Gültigkeitsregel während des Ausführens einer Anwendung wirksam wird, müssen Sie Fehlerbehandlungscode hinzufügen. Dies bedeutet normalerweise, dass die Anwendung das Formular so lange nicht verlassen darf (oder allgemeiner, nicht die aktive Umgebung ändern darf), bis der Benutzer den gemeldeten Fehler entweder korrigiert hat oder die Aktualisierung abbricht.
Entfernen einer Tabelle mit dazugehörigen Regeln aus einer Datenbank
Wenn Sie eine Tabelle aus einer Datenbank entfernen oder löschen, werden sämtliche mit ihr verbundenen Gültigkeitsregeln auf Feld- und Datensatzebene aus der Datenbank gelöscht. Dies geschieht, weil diese Regeln in der DBC-Datei gespeichert sind und das Entfernen einer Tabelle aus der Datenbank den Verweis zwischen der DBF-Datei und ihrer DBC-Datei aufhebt. Gespeicherte Prozeduren, auf die die entfernte oder gelöschte Regel verweist, werden dagegen nicht gelöscht. Sie werden nicht automatisch entfernt, weil sie eventuell von den Regeln in anderen in der Datenbank verbliebenen Tabellen benötigt werden.
Siehe auch
Wann Regeln auf Feldebene überprüft werden | Verwendung von Triggern | Arbeiten mit Tabellen | Erzwingen von Geschäftsregeln | Erstellen von Triggern | Steuern der Anzeige von Feldern