![]() |
Wie kann ich Datenfelder in meine Klasse einbauen?
Hallo ich möchte gerne in meiner Klasse meinem Feld TFloatfield den Wert eines Datasets zuweisen was
zunächst funktioniert.
Code:
wenn ich im Anschluss die Query schliesse sind die Daten weg da ich ja nur die Adresse kopiert habe.
rttiType.GetField(rttiField.Name).SetValue(self, myQuery.FieldByName('DBFeld'));
Wie bekomme ich denn das komplette Flloatfield von der Query in mein Objekt kopiert? |
AW: Wie kann ich Datenfelder in meine Klasse einbauen?
Du übergibst das Feld, übergebe den Wert.
|
AW: Wie kann ich Datenfelder in meine Klasse einbauen?
|
AW: Wie kann ich Datenfelder in meine Klasse einbauen?
Zitat:
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; Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz