2010-10-27 20 views
2

J'utilise un dbGo TADODataset dans Delphi XE pour lire les données d'une table SQL Server 2008. Tous les champs de chaîne sont nvarchar ou nchar.Delphi XE Unicode traitant des champs nchar (1)

Les champs nvarchar sont mappés sur TWideStringField sans problème.

Le problème est avec un champ nchar(1), cela correspond à une amende TStringField mais pas à un TWideStringField - quand je configure le terrain pour être TWideStringField je reçois l'erreur:

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

Le problème à l'aide d'un TStringField c'est que c'est UTF8 et nous voulons rendre notre application entièrement compatible Unicode.

Des suggestions à ce sujet?

+3

UTF8 est unicode? –

Répondre

0

Hmmm. Ce champ est utilisé pour quoi, exactement?

Dans la plupart des conceptions db que j'ai vues, un champ Char (1) est normalement utilisé pour les fanions à une lettre, qui peuvent être facilement représentés dans un caractère ASCII.

Je recommanderais changer le type de la colonne à CHAR (1), si c'est le cas .