Autor Beitrag
Doerne
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mi 10.12.08 13:43 
Hi *,

Ich habe mir einen Webservice (Server) programmiert und möchte eine Struktur übertragen.


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
type BRecord = class(TRemotable)
  private
    FPersonalId :      integer;
    FVorname :         string;
    FNachname :        string;
  published
    property Vorname : string read FVorname write FVorname;
    property PersonalId : integer read FPersonalId write FPersonalId;
    property Nachname : string read FNachname write FNachname;
end;


Ich möchte diese Struktur übertragen mein Problem ist es,
dass beim übertragen nur der Integerwert ankommt aber nicht die Strings.
Ich weiß langsam nicht mehr weiter.
Ich wäre dankbar für Hilfe.
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mi 10.12.08 13:56 
Weiß nicht, wie das bei Webservices läuft, aber der Delphi-String besteht erstmal nur aus einem Pointer auf die eigentilche Zeichenkette. Und diesen Pointer kann man zwar woanders hin übertragen, aber dort gibts die Zeichenkette eben nicht.

Versuchs mal mit nem Shortstring.

_________________
PROGRAMMER: A device for converting coffee into software.
Doerne Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mi 10.12.08 14:08 
Also das mit dem Pointer auf die eigentliche Zeichenkette ist mir klar, ist ja in anderen Sprachen auch so.

Ich sollte als weitere Information noch sagen, dass wenn ich nur einen String übertrage dann funktioniert das ganze.
Doerne Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mi 10.12.08 16:21 
Hab eine Lösung gefunden.
Ich hab mir noch eine zweite Klasse definiert und jetzt geht es.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
type TMyString = class (TRemotable)
  private
    Fstring : string;
  published
     property FS : string read Fstring write Fstring;
end;

type BRecord = class(TRemotable)
  private
    FPersonalId :      integer;
    FVorname :         TMyString;
    FNachname :       TMyString;
  published
    property Vorname : string read FVorname write FVorname;
    property PersonalId : integer read FPersonalId write FPersonalId;
    property Nachname : string read FNachname write FNachname;
end;