string,delphi2009 Previous version string=ansistring, one character for one byte, DELPHI2009 and above version string=unicodestring, one character accounted for two bytes.
char,delphi2009 Previous version Char=ansichar, one byte, DELPHI2009 and later Char=widechar, two bytes.
Widestring, a character accounting for two bytes, all versions of Delphi are supported, but Firemonkey-based apps are not supported.
Olevariant,delphi all editions are supported, and Firemonkey-based apps are supported.
If the DATASNAP middleware is to support DELPHI6, DELPHI XE-developed desktop client calls, the string is best used with the widestring type.
If the Datasnap intermediate supports both DELPHI6, DELPHI XE-developed desktop client calls and support for Firemonkey-based app calls, it is best to use the Olevariant type for strings.
Strings are best used with string types if they are only for client calls developed by DELPHI2009 and later.
Delphi evolution of different versions of string types