2010-10-27 4 views
2

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

Карты nvarchar - TWideStringField без проблем.

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

Type mismatch for field 'foobar' , expecting: WideString actual: FixedChar

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

Любые предложения по этому вопросу?

+3

UTF8 является юникодом? –

ответ

0

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

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

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