【发布时间】:2011-03-22 23:39:46
【问题描述】:
根据the official Firebird documentation,包含Unicode 字符串(SQL Server 称之为NVARCHAR)的列应声明为VARCHAR(x) CHARACTER SET UNICODE_FSS。所以我这样做了,但是当我用 DBExpress 查询表时,我得到的结果是一个 TStringField,它只是 AnsiString,而不是我期望的 TWideStringField。
如何让 DBX 从 Unicode 字符串列给我一个 Unicode 字符串结果?
【问题讨论】:
-
不知道 fb 驱动程序,但使用 ib 驱动程序(在 fb 数据库上)我能够在 sql 连接上使用参数为 'ServerCharSet = UTF8' 的 UTF8 列。对于连接,可以使用 unicode 或 ansi,我的意思是我无法使用具有混合列的表。不知道是不是还是这样。。
-
顺便说一句,如果您正在设计数据库,请不要使用 UNICODE_FSS。 “UNICODE_FSS”在谷歌上的第一次点击是this。
-
@sertac:很好。我正在以编程方式生成创建脚本,所以我可以很容易地修复它。不过,仍然没有解决 TWideStringField 问题...
标签: delphi delphi-2010 firebird dbexpress