Maybe DataSnap doesn't serialize Variant values. I can't be sure, it's on DataSnap side. Aurelius doesn't have a direct serializer for TCustomCriterion object.
I'm not sure how to it with the DataSnap serialization. Maybe you should just try to create your own DTO class to send the criteria? I'm not sure it's safe to serialize such low-level framework classes like TCustomCriterion directly.
Yep, I've create my own class TCriterion. And add the list to the TCriteria on the server-side.
for oCriterion in self.CriterionList do begin case oCriterion.OperatorKind of oprIs: oCriteria.Add(Linq.Eq(oCriterion.Name, oCriterion.Value)); oprLike: oCriteria.Add(Linq.Like(oCriterion.Name, oCriterion.Value)); end; end;