Ich habe einen DataSnap Client/Server in Delphi XE6DataSnap Server Methoden - Rangierung Verschachtelung Objekte
ich im folgenden Servermethodenaufruf auf der Client-Seite eine ungültige Zeigeroperation erhalten.
S := ClientModule1.ServerMethods1Client.getReport(RunReportObj,
ReturnFileSize);
wenn I (Schritt in) debuggen, es den Fehler sieht, ist innerhalb eines geschachtelten Aufgabe der TRunReportObj I auf die Server-Methode am Passieren
TRunReportObject
private
...
fCriteria: TCriteriaList;
...
public
function AddCrit(Const aField, aOperation: String; Const aValues: TStrings): TCriteriaObject;
property CritObjects[index: Integer]: TCriteriaObject read GetCritObject;
property Criteria: TCriteriaList read fCriteria write fCriteria;
...
end;
TCriteriaList ist TObjectList
TCriteriaObject = class(TJSONParamObject)
private
fField: String;
fOperation: String;
fValues: TStringList;
function GetJSONObject: TJSONObject; override;
public
property Field: String read fField write fField;
property Operation: String read fOperation write fOperation;
property Values: TStringList read fValues write fValues;
constructor create;
destructor destroy;override;
end;
Wenn ich fValues: TStringList zu einer Zeichenfolge ändern, funktioniert es gut
So ist das Problem mit th e string Eigenschaft „Werte“, die ich sicher gemacht haben, wird es erstellt und zerstört
constructor TCriteriaObject.create;
begin
inherited Create;
fValues := TStringList.create;
end;
destructor TCriteriaObject.destroy;
begin
fValues.Free;
inherited destroy;
end;
Ich denke, es ein Rangier-Problem sein kann ??? Kann das jemand bestätigen?
Sie könnten versuchen, das folgende Attribut zu Ihrem FValues hinzu: TStringList Feld in TCriteriaObject - '[JSONReflect (ctTypeObject, rtTypeObject, TStringListInterceptor, nil, True)]' und 'Data.DBXJSONReflect' Klausel uses hinzuzufügen. – Jason