![]() |
Datenbank: SQLITE • Version: 3.x • Zugriff über: FireDAC
FireDAC-Konzept beim speichern von Pflichtfeldern, die nicht sichtbar sind
Hallo zusammen,
gegeben ein DB-Grid mit Navigator. Sobald man im Grid was ändert/ einfügt wird der Navigator zum speichern ja aktiv. Nun gibt es in den Tabellen weitere Felder, die im Grid nicht zu sehen sind. Einige der nicht sichtbaren Felder sind in der Datenbank als Pflichtfelder deklariert. Beispiele: - AnlegeUser - Anlegezeit - AenderUser - Aenderzeit usw. Wenn ich Änderungen speichern will kommt eben die Fehlermeldung von der Datenbank ==> Zitat:
Was ist hier das richtige Konzept bei FireDAC? Ich habe mir einiges angeschaut, warte jetzt aber erst mal auf eure Expertise ab. Vielen Dank und einen schönen Tag! |
AW: FireDAC-Konzept beim speichern von Pflichtfeldern, die nicht sichtbar sind
Bei einem Edit (Update) sollte in dem Wert ja bereits was drin stehen, damit besteht erstmal kein Handlungsbedarf. Beim Insert/Append werden solche Felder in der Regel im OnNewRecord Event vorbelegt.
|
AW: FireDAC-Konzept beim speichern von Pflichtfeldern, die nicht sichtbar sind
Danke Uwe.
Die Fehlermeldung kam, weil ich einige Tabellen gestern erweitert hatte und die Wert nun in falschen Feldern standen :wall::wall: Ich hatte gehofft, dass es eine Möglichkeit gibt beim Speichern-Button des Navigators an das von FireDAC erstellte SQL-Statement zu kommen und dort meine Aktualisierungen für z.B. "Aenderzeit" vorzunehmen. So wie ich dich verstanden habe muss ich aber das ganze SQL Statement selbst zusammenstellen und im Event "OnUpdateRecord" der FDQuery zuweisen? |
AW: FireDAC-Konzept beim speichern von Pflichtfeldern, die nicht sichtbar sind
Bei ADO, Zeos, ... nutze ich für sowas das BeforePost-Ereignis.
Delphi-Quellcode:
Damit wird vor jedem Speichern, egal ob per Klick auf den Navigator oder im Quelltext, z. B. per Tabelle.Edit ... Tabelle.Post bzw. Tabelle.Append ... Tabelle.Post, die Aenderzeit auf die aktuelle Uhrzeit gesetzt. Entspricht vom Verhalten her einem Datenbanktrigger, der bei Insert und / oder Update ausgeführt wird.
procedure TfmMain.IrgendwasBeforePost(DataSet: TDataSet);
begin DataSet.FieldByName('Aenderzeit').AsDateTime := Now; end; |
AW: FireDAC-Konzept beim speichern von Pflichtfeldern, die nicht sichtbar sind
Vielen Dank,Delphi.Narium. :thumb:
Das ist wohl genau das was ich gesucht habe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz