![]() |
Löschen persistenter Felder von TDataSet zur Laufzeit
Wie wir alle aus dem Delphi-Kochbuch wissen, können wir persistente Felder in TDataSet nicht nur im Objektinspektor erzeugen, sondern auch zur Laufzeit:
for i := 0 to FieldDefs.Count -1 do FieldsDef.Items[i].CreateField(self); Leider werde ich diese dann nicht mehr los, auch die in der Hilfe beschriebene Prozedur FieldDefs.Clear oder FieldsDef.Items[i].Free hilft nicht. Zwar wird die FieldDefs-Auflistung tatsächlich gelöscht, aber wenn ich das gleiche DataSet mit einem anderen CommandText (Select * From Table) öffne, dann meckert die Laufzeit-Umgebung über fehlende Felder aus der alten Query. Offensichtlich speichert Delphi7 irgendwo noch die Informationen über persistente TField-Instanzen. |
Hallo DKamps,
das hilft dir zwar zunächst nicht weiter, aber die Online Hilfe sagt zu CreateFields folgendes: Zitat:
|
Persistente Felder selber erstellen.
Die richtige Lösung lautet:
Neben FieldDefs.Clear auch noch Fields.Clear aufrufen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:40 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