Delphi XE Unicode, работающий с полями nchar (1) - PullRequest
2 голосов
/ 27 октября 2010

Я использую dbGo TADODataset в Delphi XE для чтения данных из таблицы SQL Server 2008. Все строковые поля - nvarchar или nchar.

Поля nvarchar отображаются без проблем TWideStringField.

Проблема с полем nchar(1), это соответствует штрафу TStringField, но не TWideStringField - когда я настраиваю поле на TWideStringField, я получаю ошибку:

Несоответствие типов для поля 'foobar', ожидаемое: WideString фактическое: FixedChar

Проблема в использовании TStringField заключается в том, что это UTF8, и мы хотим сделать наше приложение полностью совместимым с юникодом.

Есть предложения по этому поводу?

1 Ответ

0 голосов
/ 25 февраля 2011

Хммм. Это поле используется для чего именно?

В большинстве конструкций дБ, которые я видел, обычно используется поле (n) Char (1) для однобуквенные флаги, которые можно легко представить в виде ASCII-символа.

Я бы рекомендовал изменить тип столбца на CHAR (1), если это случай.

...