Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi CalcFields (https://www.delphipraxis.net/26282-calcfields.html)

Bulvaye 21. Jul 2004 14:30


CalcFields
 
Hallo zusammen,

ich habe noch nie mit CalcFields gearbeitet und komme da irgendwie nicht weiter. Ich habe folgende Problemstellung:

1. Es sollen zur Laufzeit CalcFields erzeugt werden.
2. Für die CalcFields existiert keine Repräsentation in der Datenbank, d.h. die Felder sollen nur im TDataset-Objekt vorhanden sein, nicht aber in der Datenbank gespeichert werden.

Wie kann ich CalcFields zur Laufzeit erzeugen? Dieser Code funktioniert leider nicht:

Code:
  Field := TStringField.Create(nil);
  Field.FieldKind := fkInternalCalc; // oder auch fkCalculated
  Field.FieldName := 'TEST';
  Field.Size := 255;
  Field.DataSet := MeinDataset;
Mit fkCalculated wird das Feld nicht angefügt und mit fkInternalCalc laufe ich auf den Fehler, dass "Test" nicht gefunden wurde. Was mache ich hier grundsätzlich falsch?

Danke für jeden Hinweis.

Jelly 21. Jul 2004 15:29

Re: CalcFields
 
Hallo,

schon mal probiert dein Feld so zu erzeugen:
Delphi-Quellcode:
Field := TStringField.Create (MeinDataset) ;
Gruß,
Tom

Bulvaye 21. Jul 2004 21:58

Re: CalcFields
 
Na ja - der Owner hat nicht viel mit dem Dataset zu tun, sondern bestimmt doch i.d.R. nur, wer für die Speicherverwaltung (und damit die anschließened Zerstörung des Objekts) verantwortlich ist.

Trotzdem danke - aber das Problem war, dass, sobald ein TField zur Laufzeit erzeugt wird, das Dataset auch nur dieses eine Feld kennt. Also müssen zusätzlich alle Felder aus dem FieldDefs als TFields erzeugt werden - dann klappt's auch.

Jelly 22. Jul 2004 09:23

Re: CalcFields
 
Zitat:

Zitat von Bulvaye
Na ja - der Owner hat nicht viel mit dem Dataset zu tun, sondern bestimmt doch i.d.R. nur, wer für die Speicherverwaltung (und damit die anschließened Zerstörung des Objekts) verantwortlich ist.

Da hast du natürlich Recht :wall:

Tom


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:06 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 by Thomas Breitkreuz