Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Object Daten-Layer

  Alt 14. Feb 2011, 10:22
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)
  Mit Zitat antworten Zitat