Einzelnen Beitrag anzeigen

Nuclear-Ping
(Gast)

n/a Beiträge
 
#1

TField.Assign (TField) -> Fehler

  Alt 17. Dez 2005, 15:53
Datenbank: Advantage Local Server • Version: 7 • Zugriff über: ADO
Hallo, liebe Community,

ich hoffe, ich drücke mich mit meinem Anliegen verständlich aus.

Also ich habe ein dynamisches Array vom Typ TField, welches ich mit Ergebnissen aus einer Query befüllen will, um diese später zu verarbeiten.

Das ist die SQL-Abfrage:
Zitat:
SELECT * FROM Clients, NatalHoroscopes WHERE NatalHoroscopes.ID=Clients.NatalHoroscopeID;
Nach der Abfrage gehe ich jeden Datensatz durch und will diesen als Ergebnis zu einem TVirtualStringTree hinzufügen. Das mache ich so:
Delphi-Quellcode:
Nach der Abfrage:

      if (RecordCount > 0) then
        begin
          First;

          while not EOF do
            begin
              AddListNode (Fields);
              Next;
            end;

        end;
Die Funktion AddListNode sieht wie folgt aus:
Delphi-Quellcode:
...
type
  PClientListData = ^TClientListData;
  TClientListData = Array of TField;

...

procedure TClientListForm.AddListNode (Fields: TFields);
var
  a: Integer;
  n: PVirtualNode;
  d: PClientListData;
begin
  n := ClientList.AddChild (nil);
  d := ClientList.GetNodeData (n);

  SetLength (d^, Fields.Count - 1);
  for a := 0 to Fields.Count - 1 do
    begin
      d^[a] := TField.Create (Self);
      d^[a].Assign (Fields[a]);
    end;
end;
Allerdings erhalte ich NACH der Zeile "d^[a].Assign (Fields[a]);" eine Exception:
Zitat:
Feld '' kann nicht als Typ Variant angesprochen werden
Fields enthält aber Werte, das habe ich schon z.B. über "ShowMessage (Fields[a].DisplayName)" geprüft.

Weiß jemand warum? Komme nicht dahinter.
  Mit Zitat antworten Zitat