根据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连接上使用UTF8列的参数'ServerCharSet = UTF8'。对于连接,有可能使用unicode或ansi工作,我的意思是我无法使用混合列表工作。不知道它是否仍然如此。 – 2011-03-22 23:58:19
顺便说一句,如果你设计的数据库不适用于UNICODE_FSS。 google上的第一个“UNICODE_FSS”命中是[this](http://www.destructor.de/firebird/charsets.htm)。 – 2011-03-23 00:02:06
@sertac:很好。我以编程方式生成创建脚本,所以我可以很容易地修复它。仍然没有解决TWideStringField问题,虽然... – 2011-03-23 00:07:22