Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: OnChange behindert Post

  Alt 22. Jan 2020, 11:43
Das OnChange der sichtbaren Controls reagiert ja, wenn sich der Inhalt dieses Controls ändert
und das passiert auch z.B. beim Open, Close, Scroll, Refresh des DataSets und dort sollte sowas wie Edit/Insert/Post/Delete in einem Event besser nicht vorkommen.

Warum werden die Berechnungen nicht in einem Trigger in der Datenbank erledigt, bzw. im BeforePost, schon beim Speichern des Datensatzes?
Auch als CalcField oder schon im SELECT können während des Ladens Werte berechnet werden.

Im TField.OnChange sollte auf dessen DataSet auch niemals "Post" ausgeführt werden.

Einfaches Beispiel:
FieldA.OnChange ändert FieldB und FieldC und macht anschließend Post
* FieldB.OnChange ändert auch irgendwas und macht ebenfalls Post
weiter im FieldA.OnChange, kommt nun FieldC dran ... was nicht geht, weil schon Post schon durch ist
und immernoch im FieldA.OnChange, käme nun das POST, was oben ausgegraut wurde, da sich das nächste Event dazwischen schob
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (22. Jan 2020 um 11:57 Uhr)
  Mit Zitat antworten Zitat