Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.433 Beiträge
 
Delphi 7 Professional
 
#8

AW: OnNewRecord nicht aufgerufen

  Alt 1. Dez 2023, 15:07
Wie wäre es denn mit simplen Datenbanktriggern? (Die kannste ja nach dem Befüllen der Tabellen wieder wegwerfen.)
SQL-Code:
CREATE TRIGGER TR_KASSE_EINSTELLUNGEN_BI FOR KASSE_EINSTELLUNGEN ACTIVE before insert POSITION 0 AS
BEGIN
  if (NEW.DRAWBACK_CALCULATION is NULL) then NEW.DRAWBACK_CALCULATION = 0;
END

CREATE TRIGGER TR_KASSE_PRINTSETTINGS_BI FOR KASSE_PRINTSETTINGS ACTIVE before insert POSITION 0 AS
BEGIN
  if (NEW.PRINT_SMALL_BONS is NULL) then NEW.PRINT_SMALL_BONS = 0;
END
Und das Schöne daran ist, es ist vollkommen wurscht, auf welchem Weg die Daten in die Datenbank kommen, werden Werte für andere Felder benötugt, einfach die Trigger anpassen.

Sinnvoll ist es übrigens, Spalten, für die keine Werte bekannt sind, nicht mit ins Insert zu packen, sondern sie von der Datenbank per Defaultwert und/oder Trigger befüllen zu lassen. Das sind nun mal halt Aufgaben, die Datenbanken von Haus aus können, egal ob die Daten über ein Delphiprogramm oder Flamerobin oder ISQL, oder welche Datenbanksoftware gerade genutzt wird, ... in die Datenbank kommen.

Da muss man sich nicht zwingend erstmal 'ne Software schreiben, die das dann "irgendwie" (hoffentlich verlässlich) übernimmt.
  Mit Zitat antworten Zitat