Hi Lombi,
die Dimensionierung des Array hat nichts mit der Anzahl der Edits auf der Form zu tun, sondern eher mit der Anzahl der Felder im DataSet. Für den Insert-Mode musst du noch eine Erweiterung im Ereignis OnBeforePost() machen:
Delphi-Quellcode:
procedure TDemoForm.TableBeforePost(DataSet: TDataSet);
var
i: Integer;
changed: Boolean;
begin
with DataSet do
begin
changed := State = dsInsert;
i := Low(OldValues);
while not changed and (i <= High(OldValues) do
begin
changed := changed or (OldValues[i] <> Fields[i].Value);
Inc(i);
end;
end;
if changed then
DataSet['Update'] := Now;
end;
Ich habe den Code nicht getestet. Die Schleife soll verlassen werden, sobald eine Änderung entdeckt wird. Bei Neuzugängen soll der Zeitstempel ohne Prüfung geschrieben werden.
Grüße vom marabu