2

Delphi XEで dbGo を使用してTADODataset、SQL Server 2008 テーブルからデータを読み取ります。すべての文字列フィールドは nvarchar または nchar です。

nvarchar フィールドTWideStringFieldは問題なくマップされます。

問題はフィールドにあります。これは罰金nchar(1)にマップされますが、フィールドにはマップされません。フィールドを次のように構成すると、エラーが発生します。TStringFieldTWideStringFieldTWideStringField

フィールド の型が一致し'foobar'ません。予想:WideString実際:FixedChar

a を使用する際の問題TStringFieldは、それが UTF8 であり、アプリケーションを完全に Unicode に準拠させたいことです。

これに関する提案はありますか?

4

1 に答える 1

0

うーん。そのフィールドは正確には何に使用されますか?

私が見たほとんどのデータベース設計では、(n)Char(1) フィールドは通常、1 文字のフラグに使用されます。これは、ASCII 文字で簡単に表すことができます。

その場合は、列の型を CHAR(1) に変更することをお勧めします。

于 2011-02-25T18:41:17.193 に答える