Delphi XE Unicode, работающий с полями nchar(1)
Я использую DBO TADODataset
в Delphi XE для чтения данных из таблицы SQL Server 2008. Все строковые поля - nvarchar или nchar.
Поля nvarchar отображаются на TWideStringField
без проблем.
Проблема с nchar(1)
поле, это отображается на TStringField
хорошо, но не до TWideStringField
- когда я настраиваю поле, чтобы быть TWideStringField
Я получаю ошибку:
Несоответствие типов для поля
'foobar'
, ожидая:WideString
фактический:FixedChar
Проблема в использовании TStringField
в том, что это UTF8, и мы хотим сделать наше приложение полностью совместимым с юникодом.
Есть предложения по этому поводу?
1 ответ
Хммм. Это поле используется для чего именно?
В большинстве дизайнов БД, которые я видел, поле (n)Char(1) обычно используется для однобуквенных флагов - которые могут быть легко представлены в ASCII-символе.
Я бы рекомендовал изменить тип столбца на CHAR(1), если это так.