Delphi XE Unicode处理nchar(1)字段

时间:2010-10-27 11:21:37

标签: sql-server delphi unicode delphi-xe tadodataset

我在Delphi XE中使用dbGo TADODataset来读取SQL Server 2008表中的数据。所有字符串字段都是nvarchar或nchar。

nvarchar字段映射到TWideStringField没有任何问题。

问题在于nchar(1)字段,这会映射到TStringField罚款但不会映射到TWideStringField - 当我将字段配置为TWideStringField时,我得到了错误:

  

字段'foobar'的类型不匹配,期望:WideString实际:FixedChar

使用TStringField的问题在于它是UTF8,我们希望使我们的应用程序完全兼容unicode。

对此有何建议?

1 个答案:

答案 0 :(得分:0)

嗯。该字段用于什么,确切地说?

在我看过的大多数数据库设计中,通常使用(n)Char(1)字段 单字母标志 - 可以很容易地用ASCII字符表示。

我建议将列的类型更改为CHAR(1),如果是的话 情况下。