wie wäre es damit
Beim Lesen aus der
DB müssen natürlich beide arrays (FOldData, FNewData) mit den Werten aus der
DB befüllt werden.
Beim Speichern kann man nun diese Daten vergleichen.
Hieraus lässt sich auch schön eine Basisklasse bilden und die abgeleitete hat eigentlich nur noch die properties und benutzt die Getter/Setter der Basisklasse
Delphi-Quellcode:
type
TKunde = class
private
FOldData = array of variant;
FNewData = array of variant;
procedure InternalSetter( index : integer; Value : Variant );
function InternalGetter( index : integer ) : Variant;
protected
procedure SetIntData( index : integer; const Value : integer );
function GetIntData( index : integer ) : integer;
procedure SetStrData( index : integer; const Value : string );
function GetStrData( index : integer ) : string;
public
published
property id : integer index 0 read GetIntData write SetIntData;
property plz : string index 1 read GetStrData write SetStrData;
property ort : string index 2 read GetStrData write SetStrData;
end;
procedure TKunde.InternalSetter( index : integer; Value : Variant );
begin
FNewData[ index ] := Value;
end;
function InternalGetter( index : integer ) : Variant;
begin
Result := FNewData[ index ];
end;
procedure TKunde.SetIntData( index : integer; const Value : integer );
begin
InternalSetter( index, Value );
end;
function TKunde.GetIntData( index : integer ) : integer;
begin
Result := VarToInt( InternalGetter( index ) );
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)