4D v16

Trigger

Home

 
4D v16
Trigger

Trigger    


 

Hier lernen Sie, wie Sie Datenbankereignisse konfigurieren und in der Programmierung berücksichtigen.
Ein Trigger (oder Tabellenmethode) prüft Aktionen, die die Datenbank-Engine in Daten ausführt:

  • Erstellen
  • Ändern
  • Löschen

Ein Trigger ist im Grunde eine Methode wie jede andere. Es wechselt lediglich der Kontext der Ausführung.

Datenbankereignisse müssen markiert sein, damit 4D die Ausführung des Triggers steuern kann.

Im Inspektor für Tabellen können wir alle 3 Datenbankereignisse aktivieren, mit “Bearbeiten” die Methode festlegen, die beim Auslösen erstellt wird. Ihre Struktur ist wie folgt:

 $evt:=Trigger event\\Nummer des Ereignisses, das die Engine gerade ausführt
 Case of
    :($evt=On Saving New Record Event)\\Neuen Datensatz sichern
 
    :($evt=On Saving Existing Record Event)\\Vorhandenen Datensatz sichern
 
    :($evt=On Deleting Record Event)\\Datensatz löschen
 
 End case

Im Gegensatz zur Formularmethode, die beim Anzeigen oder Drucken ausgeführt wird, wird ein Trigger unabhängig vom Datensatz ausgeführt:

  • Programmierung
  • Import/Export
  • SQL
  • Web
  • usw.

Der Trigger hat den Vorteil, dass er zwingend durchlaufen wird.

  • Wir fügen in der Tabelle Interventions ein Feld Date_Last_Change (Typ Datum) hinzu
  • Wir fügen es im Eingabeformular ein
  • Und weisen ihm beim Sichern des Datensatzes einen Wert zu:

 [Interventions]Date_Last_Change:=Current date

Diese letzte Änderung soll auch beim Erstellen eines Datensatzes gültig sein, daher fügen wir die obige Zeile sowohl in "On Saving Existing Record Event" als auch in "On Saving New Record Event" ein.

Wir testen das beim Ausführen einer Änderung:

  • Wir ändern ein Datum in der Liste
  • Sichern und gehen zurück. Das Änderungsdatum hat einen Wert erhalten
  • Also arbeitet der Trigger korrekt

Hier sollten Sie folgendes beachten:  

Beim Aufrufen eines ENGINE Ereignisses gibt es ein wichtiges Detail: Trigger werden auf dem Computer der Datenbank Engine ausgeführt:

  • Im Einzelplatz führt ein Computer sowohl den Trigger als auch das aufrufende Ereignis auf, z.B. Anzeigen.
  • Im Client/Server Modus (SQL Server oder Web Server) werden die Daten auf dem Server gespeichert und über die 4D Server Engine an den Client Rechner gesendet. In diesem Fall werden Trigger auf dem Server und nicht lokal auf den Client Rechnern ausgeführt.

Sie sollten generell dazu übergehen, Projektmethoden zu erstellen, die bestimmte Abläufe, Berechnungen, o.ä. abwickeln und diese "generischen" Methoden dann über spezifische Methoden wie Trigger aufrufen.

Wir haben gesehen, wie Parameter übergeben werden, also nutzen Sie diese. Das lässt sich viel einfacher pflegen und Sie sparen erheblich Zeit beim Entwickeln und Beheben von Fehlern. Ihr Code wird präziser, verlässlicher und leichter lesbar.
Sie können auch verschachtelte Trigger ausführen. 4D bietet Befehle zum Herausfinden der Trigger Eigenschaften und seiner hierarchischen Ebene.
Ein Trigger kann auch dazu dienen, eine bestimmte Operation in einem Datensatz zuzulassen oder zurückzuweisen.

Dies ist ein Weg, die Integrität Ihrer Datenbank sicherzustellen, unabhängig wie die Information eingetragen wird:

  • SQL
  • Plug-In
  • Eingabe
  • Import
  • Web

Da ein Trigger die anderen Prozesse in der Ausführung blockiert, sind die wichtigsten Kriterien für einen Trigger:

  • rasche Ausführung
  • keine Oberfläche (Warnungen, Meldungen, etc.)

 
 

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Trigger

 
GESCHICHTE 

 
ARTIKELVERWENDUNG

Self-Training ( 4D v16)