Einzelnen Beitrag anzeigen

Ruediger123

Registriert seit: 30. Aug 2011
16 Beiträge
 
#4

AW: Wie kann ich Datenfelder in meine Klasse einbauen?

  Alt 6. Apr 2017, 08:19
Du übergibst das Feld, übergebe den Wert.
Das habe ich auch schon versucht allerdings scheitere ich bereits beim Erstellen des Objekts

Code:
var
  rttiContext: TRttiContext;
  rttiType: TRttiType;
  attribute: TCustomAttribute;
  rttiField: TRttiField;
begin
  myQuery.Close;
  myQuery.SQL.Clear;
  myQuery.SQL.Add('SELECT * FROM Wert');
  myQuery.SQL.Add('WHERE ID=' + IntToStr(FID));
  myQuery.Open();
  try
    rttiContext := TRttiContext.Create;
    try
      rttiType := rttiContext.GetType(TWert);
      for rttiField in rttiType.GetFields do
      begin
        if rttiField.FieldType.ToString = 'TFloatField' then
        begin
          // Instanz erstellen wenn noch nicht vorhanden
          if not assigned(TFloatField(rttiType.GetField(rttiField.Name))) then
            TFloatField(rttiType.GetField(rttiField.Name)).Create(nil);
          // Wert zuweisen
          TFloatField(rttiType.GetField(rttiField.Name)).AsFloat := tmpQuery.FieldByName(rttiField.Name).AsFloat;
        end;
      end;
    finally
      rttiContext.Free;
    end
  finally
    myQuery.Close;
  end;
end;

Hört sich vielleicht nach Mapping an.

Marshmallow ORM for Delphi

Grüße // Martin
Ja so was ähnliches habe ich vor
  Mit Zitat antworten Zitat