Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#11

Re: Letzte Änderung eines Datensatzes speichern

  Alt 23. Mär 2006, 18:28
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
  Mit Zitat antworten Zitat