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), если это так.

Другие вопросы по тегам