Thema: Delphi Trigger Felder verketten

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#2

AW: Trigger Felder verketten

  Alt 8. Jun 2020, 18:04
Im AfterInsert/-Update wurde bereits gespeichert und es lässt sich nichts mehr Ändern.
Du kannst dort maximal ein neues UPDATE-Statement auslösen.
--UPDATE Adressen SET Adresse = concat(new.Titel, ' ', new.Vorname, ' ', new.Nachname) WHERE ID = new.ID;
UPDATE Adressen SET Adresse = concat(Titel, ' ', Vorname, ' ', Nachname) WHERE ID = new.ID;
(auf Endlosschleifen achten)

Was du willst, ist wohl im BeforeInsert/-Update zu besser lösen.
new.Adresse = concat(new.Titel, ' ', new.Vorname, ' ', new.Nachname);
(wird Titel/Vorname/Nachname in einem anderen Trigger geändert, dann auf die Reihenfolge der Trigger achten)

Einige DBMS kennen auch sowas wie ein new.Adresse = concat_ws(' ', new.Titel, new.Vorname, new.Nachname); ,
also "concatenate with separator", wo ' ' als Trennzeichen nur zwischen vorhandene Einträge (nicht NULL) eingefügt wird.


Kennt Firebird Writeable-Views?
Wenn ja, dann keine doppelte Datenhaltung, sondern sich einen View erstellen, der das bei der Abfrage zusammensetzt.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 8. Jun 2020 um 18:29 Uhr)
  Mit Zitat antworten Zitat