Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Baum mit Nested TRemotable Nachfahren (https://www.delphipraxis.net/197692-baum-mit-nested-tremotable-nachfahren.html)

QuickAndDirty 28. Aug 2018 14:23

Baum mit Nested TRemotable Nachfahren
 
Hallo ich fülle zurzeit einen Baum durch jeweils einen SOAP Request pro parentnode.
Inklusive Wurzel 3 Ebenen.
Da der Baum arg viele Blätter aufweist dauert das das schonmal etwas...

Ich möchte den Baum gerne in einem einzigen Request abrufen.

Kann ich dazu Dynamische arrays Von TRemotable Objekten nutzen?
So wie hier?
Delphi-Quellcode:
Type

TLizenz = Class(TRemotable)
private
  Instanzen:TStringDynArray;
  fLizenzID:String;
Published
  Property LizenzID:String read fLizenzID write FLizenzID;
  Property Instanzen:TStringDynArray read fInstanzen write fInstanzen;
end;

TLizenzen = array of TLizenz;

TSOAPBaum = Class(TRemotable)
private
  fLizenzNehmer:String;
  fTLizenzen;
published
  Property LizenzNehmer:String; read fLizenzNehmer write fLizenzNehmer;
  Property Lizenzen: TLizenzen read fTLizenzen write fTLizenzen;
end;

QuickAndDirty 29. Aug 2018 11:30

AW: Baum mit Nested TRemotable Nachfahren
 
Niemand der sowas mal gemacht hat?
Ich habe es jetzt ausprobiert...
Er sendet zwar ein XML paket mit allen daten , aber wie es scheint Nimmt der Soap Client nichts davon in das Array auf. Das Array ist leer.

EDIT:
OK ich habs....
INDEX IS_UNBD sollte man wohl besser nicht benutzen obwohl im Internet Beispiele durchaus anders aussehen.

Also es geht.
So wie es Im eröffnungs post steht. Mit einer änderung damit man die klasse befüllen kann, brauft is ServiceSeitig eine SetLength methode.

Delphi-Quellcode:
Type

TLizenz = Class(TRemotable)
private
  Instanzen:TStringDynArray;
  fLizenzID:String;
Published
  Property LizenzID:String read fLizenzID write FLizenzID;
  Property Instanzen:TStringDynArray read fInstanzen write fInstanzen;
end;

TLizenzen = array of TLizenz;

TSOAPBaum = Class(TRemotable)
private
  fLizenzNehmer:String;
  fTLizenzen;
Public
  Procedure SetLizenzenCount(aValue:integer);
published
  Property LizenzNehmer:String; read fLizenzNehmer write fLizenzNehmer;
  Property Lizenzen: TLizenzen read fTLizenzen write fTLizenzen;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz