TL; DR: Используйте WideString в качестве типа для вычисляемого поля.Внутренние поля StringFields основаны на AnsiString.
Если вы создадите поле типа String (ftString), вы получите TStringField.Его значением по-прежнему является «старая» AnsiString.Это, вероятно, по причинам совместимости.
То есть, это зависит от определения NEXTGEN , что в основном означает, что для классических настольных приложений TStringField.Value по-прежнему является AnsiString, а для приложений iOS и Android, написанных на Delphi, -действительно (Unicode) String.
Но это только для свойства Value
.Вы также можете использовать явные свойства AsString, AsWideString или AsAnsiString.Эти свойства доступны для любого типа поля, но значение, которое вы даете или получаете, переводится во внутренний тип поля и из него.Для TStringFields этот тип по-прежнему является AnsiString, независимо от того, как вы устанавливаете значение.
Для значений в Unicode используйте WideString
или WideMemo
поля.