Entwickler-Ecke

Internet / Netzwerk - Probleme bei der Übertragung von TRemotable (Webservice)


Doerne - Mi 10.12.08 13:43
Titel: Probleme bei der Übertragung von TRemotable (Webservice)
Hi *,

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



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 - 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.


Doerne - 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 - Mi 10.12.08 16:21

Hab eine Lösung gefunden.
Ich hab mir noch eine zweite Klasse definiert und jetzt geht es.


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;